Spring Framework
-
스프링 어노테이션 정리 (추가 예정)Spring Framework 2023. 10. 12. 12:49
@RequiredArgsConstructor 의존성 주입 어노테이션 // 기존에 의존성 주입 @Autowired private BoardService boardService; // @RequiredArgsConstructor 사용 @RequiredArgsConstructor public class BoardController { private final BoardService boardService; } @RestController @Controller + @RequestBody의 조합 JSON 형태의 객체를 return하기 위해 사용한다. @RequestBody는 사용하지 않아도 된다. // @RestController 미사용 @Controller @RequiredArgsConstructor publi..
-
Spring AOP에 대한 개념Spring Framework 2023. 10. 5. 13:16
Spring AOP 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점을 나눠서 그 관점들을 모듈화하는 것 횡단(가로) 관심사를 분리한다. (cross-cutting) 다른 로직과 분리할 수 없는 어플리케이션 로직을 분리한다. 부가기능을 따로 관리한다. 공통적으로 사용하는 기능들을 분리하여 관리할 수 있는 것을 말합니다. 프록시 패턴 기반의 AOP 구현체 프록시 패턴 : 어떤 객체를 사용하고자 할 때, 객체를 직접적으로 참조하는 것이 아닌, 해당 객체를 대리(Proxy)하는 객체를 통해 대상 객체에 접근하는 방식 접근 제어 및 부가기능을 추가하기 위해 스프링 bean에만 AOP적용 가능 중복 코드 제거, 유지보수 용이, OOP의 문제점 해결 핵심 로직과 부가 기능의 명확한 분리로, ..
-
스프링(spring) web.xml 기본 설정Spring Framework 2023. 10. 5. 11:46
web.xml 기본 설정 web.xml : web application 설정을 위한 배포 설명서(deployment descriptor) deploy할 때, servlet 정보를 설정 배포할 servlet이 무엇인지, 해당 servlet이 어떤 url에 매핑되는지 알려준다. welcome servlets.WelcomeServlet welcome /welcome DispatcherServlet spring container를 생성한다. (controller의 생명주기를 관리) 클라이언트의 요청을 처음으로 받는 클래스 받은 요청을 Handler(controller)로 보낸다. 각 기능의 요청별로 DispatcherServlet을 할당할 수 있다. oneServlet org.springframework.web..
-
spring과 spring boot 비교하기Spring Framework 2023. 10. 4. 20:52
Spring SpringBoot 개발자가 직접 설정 파일을 작성하여 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체 간의 의존성을 설정해야 합니다. 개발자가 설정 파일을 작성할 필요 없이, 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해주는 기능을 제공합니다. (starter을 통한 dependency 자동화) test프레임워크를 사용하고자 하는 경우 Spring Test, JUnit, Hamcrest, Mockito 등 모든 라이브러리를 추가해야 한다. spring-boot-starter-test 만 추가해주면 된다. 내장 서버가 존재하지 않음 내장 서버를 제공하여 쉽게 웹 애플리케이션을 실행 @SpringBootApplication 사용하지 않음 @SpringBootApplic..
-
스프링 컨테이너에 대한 개념Spring Framework 2023. 10. 4. 19:19
스프링 컨테이너(Spring Container) 자바 객체의 생명 주기를 관리 생성된 bean에게 추가적인 기능을 제공한다. 객체가 의존관계를 등록할 때는 스프링 컨테이너에서 해당하는 빈을 찾고, 그 빈과 의존성을 만듭니다. @Autowired같은 DI가 정상적으로 동작하려면 인스턴스가 bean으로써 스프링 컨테이너에 들어가있어야 합니다. 스프링 컨테이너(Spring Container)의 종류 * Spring Container는 Configuration Metadata를 사용하고, 파라미터로 넘어온 설정 클래스 정보를 사용해 Spring Bean을 등록한다 BeanFactory bean의 생성과 관계설정 같은 제어를 담당하는 IOC 오브젝트 Spring Container의 최상위 인터페이스 getBean..
-
스프링 프레임워크(spring framework)에 대한 기본 개념Spring Framework 2023. 10. 4. 19:00
스프링 프레임워크 경량 컨테어너 자바 객체를 담고 직접 관리하는 프레임워크 객체의 생성 및 소멸 그리고 라이프 사이클을 관리한다. Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다. IOC 기반 객체에 대한 제어권을 사용자가 가지지 않고, 프레임워크에 위임하는 것을 의미 POJO를 사용한다. 불필요한 로직이 줄어들며 코드가 간결해지는 장점이 있다. 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가진다. AOP(관점지향 프로그래밍) 객체지향 원칙에 따라 관심사가 같은 데이터를 한곳에 모아 분리하고 낮은 결합도를 갖게하여 독립적이고 유연한 모듈로 캡슐화를 하는 과정 중에 중복된 코드 발생으로 인해 가독성, 확장성, 유지보수성이 떨어지는 점을 보안하기 위해 등장 핵심기능과..
-
Spring bean 정리(3)_Spring Bean 스코프Spring Framework 2023. 8. 13. 15:49
bean scope 빈이 존재할 수 있는 범위 Singleton scope 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 Singleton bean은 컨테이너 생성 시점에 같이 생성되고 초기화된다. 생성된 하나의 인스턴스는 Spring Beans Cache에 저장되고, 해당 빈에 대한 요청과 참조가 있으며 캐시된 객체를 반환한다. 하나만 생성되기 때문에 동일 참조를 보장한다. 모든 빈은 스코프가 명시적으로 지정되지 않으면 싱글톤이다. 대상 클래스에 @Scope(”singletone”) 을 붙이면 된다. 각각 다른 요청에서 boardService bean(Singleton scope의 bean)을 요청하면 스프링 컨테이너는 동일한 boardService bean을 반환한..
-
Spring bean 정리(2)_Bean 생성과 singletonSpring Framework 2023. 8. 13. 15:48
singleton 객체를 딱 1번만 생성하고 싶을 때 사용하는 기법 싱글톤 빈은 스프링 컨테이너에서 한 번만 생성되며, 컨테이너가 사라질 때 제거된다. @Configuration은 @Bean에 추가 설정을 줘서 singleton을 보장한다. spring bean의 singleton 예시 // singleton 보장함 @Configuration public class SampleConfig { @Bean public SampleService sampleService() { // code.. (A 객체 생성 로직) } @Bean public SubSampleService subSampleService() { // code.. (A 객체 생성 로직) } } // singleton을 보장하지 않음 @Compon..