최근 들어 스프링 공부를 시작하게 되어 정리를 시작합니다.개인적으로, php를 통해 뭔가에 속박(?)받지 않고 나름대로 자유롭게 개발을 어느정도 해본거같다고 생각했고어느정도 체계적으로 잘 짜여진 프레임워크 중, 국내 서버개발자 수요가 가장 많은(사실 이 이유가 가장 크
특정 도메인의 요구사항을 정리한다.클라이언트 - 서비스 - 레포지토리 로협력관계를 만듬(비 개발자도 확인가능한)클래스 다이어그램클래스간의 의존성, 인터페이스 설계 등을 나타낸다.객체 다이어그램실제 사용할 클래스들, 관계를 나타낸다.학과때 UML인지 뭔지 이상한 다이어그
참고 ) 프레임워크, 라이브러리의 구분내가 작성한 코드를 대신 제어하면 프레임워크임 (호출을 대신하거나 대신 실행함)내가 직접 호출해서 사용하면 라이브러리IoC간단하게 줄이면 프로그램 제어권을 외부에서 관리하고 주입받는걸 의미한다.예전에 PHP DI Container
ApplicationContext 상위에 BeanFactory 인터페이스가 존재한다.AnnotationConfigApplicationContext, GenericXmlApplicationContext두가지 방식으로 보통 빈에 관한 정보를 생성한다.ac(Applicati
싱글톤 패턴은 불필요하게 요청마다 여러객체를 생성하는것을 방지할수 있다. 싱글톤 패턴의 문제점싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다.의존관계상 클라이언트가 구체 클래스에 의존한다. DIP를 위반한다.클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반할 가
@Component가 붙은클래스를 빈에 자동으로 등록함빈은 등록했지만 의존관계를 알수없음@Autowired@ComponentScan은 @Component 가 붙은 모든 클래스를 빈으로 등록함스프링빈의 기본이름은 클래스명에서 맨앞만 소문자로 사용한다(임의로 부여가능)생성
다양한 의존관계 주입 방법스프링은 빈을 먼저 다 생성하고의존관계설정을 준비해서 설정해준다.생성자 주입의 경우만 빈을 생성하면서 의존관계를 주입해준다(클래스를 생성하면서 생성자를 호출해야 하기때문에)주입할 대상(빈,객체)가 없어도 동작하게 할려면@Autowired(req
실제 개발할때는 보통 어짜피 불변에생성자만들고, final 키워드 사용하는건 늘 뻔한 일이다.이런경우 롬복을 활용하면 편하게 사용가능하다.plugin, complier 에서 Annotation processor에enable 설정 해줘야한다.롬복에는 다양한 기능을 어노테
객체의 생성과 초기화는 구분해주는게 좋다.객체 생성은 무거운작업을 초기화 하기보단 필수 파라미터를 받아서 메모리에 할당받는데에 초점을 맞추는게 좋다.그외 외부커넥션 연결과 같은 무거운 동작은 객체 생성시보다는 초기화 작업에서 처리하는게 낫다. 스프링 빈의 이벤트 라이프
빈 스코프빈스코프의 종류싱글톤 스코프 스프링빈은 기본적으로 싱글톤스코프로 생성되는데 이는 스프링 컨테이너의 시작과 종료될때까지 유지된다.프로토타입 스코프 빈의 생성과 의존관계까지만 관리해주고 그이후는 관리하지않는 짧은 스코프프로토타입 스코프의 빈은 같은 요청이라도 요청