WEB/Spring
-
[Spring] 생명주기(Life Cycle)WEB/Spring 2020. 4. 5. 17:47
1. 스프링 컨테이너(Contatiner) 생명주기 2. 스프링 빈(Bean) 생명주기 스프링 컨테이너가 생성됨과 동시에 빈(Bean) 객체도 생성되므로 빈(Bean) 객체의 생명주기는 스프링 컨테이너의 생명주기와 같다고 할 수 있다. 빈 객체가 생성이되고 소멸되는 시점에 특정한 작업을 할 수 있는데 그 특정한 작업을 할 수 있는 방법은 인터페이스(Interface)를 이용하는 방법과 init-method와 destroy-method 속성을 이용하는 방법이 있습니다. 2-①. 인터페이스 2-②. init-method, destroy-method 출처 : 인프런, 자바 스프링 프레임워크 - 신입 프로그래머를 위한 강좌
-
[Spring] 의존 객체 선택WEB/Spring 2020. 4. 4. 16:38
@Autowired, @Resource를 통한 의존 객체 자동주입을 할 때 동일한 객체가 2개 이상인 경우 스프링 컨테이너는 자동 주입 대상 객체를 판단하지 못해서 Exception 에러를 발생시킵니다. 이를 해결하기 위해서 xml 파일에서 bean 객체에 라는 우선순위를 정하는 태그를 추가해 '이 객체를 우선적으로 쓰겠다.' 라는 것을 명시해주고 @Qualifier 라는 어노테이션을 @Autowired나 @Resource를 사용하는 곳에 속성값으로 추가시켜줘야 합니다. 또 다른 방법으로는 @Inject 어노테이션을 사용할 경우 @Named 어노테이션을 추가하는 것 입니다. ※ 실무에서는 @Inject 보다 @Autowired를 이용해 의존 객체 자동주입 하는 것을 선호한다고 합니다! 출처 : 인프런, ..
-
[Spring] 의존 객체 자동주입WEB/Spring 2020. 4. 4. 16:19
의존 객체 자동 주입이란 스프링 설정 파일에서 의존 객체를 주입할 때 또는 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의존 대상 객체가 필요한 객체에 주입해 주는 기능입니다. 구현 방법으로는 @Autowired와 @Resource 어노테이션을 이용해서 쉽게 구현할 수 있습니다. ※ 어노테이션(Annotation) 주석이라는 사전적 의미를 가지고 있으며 컴파일 혹은 런타임에 해석됩니다. 데이터를 위한 데이터(메타 데이터) 라고도 불리며 JDK5 부터 등장한 개념입니다. @Autowired는 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입하는 방법이고 @Resource는 주입하려고하는 객체의 이름이 일치하는 객체를 자동으로 주입하는 방법입..
-
[Spring] 빈(Bean)의 범위WEB/Spring 2020. 4. 3. 18:08
우리가 자바코드를 이용해서 객체를 생성할 때 예를들어 다음과 같은 작업을 진행합니다. ClassName cn1 = new ClassName(); ClassName cn2 = new ClassName(); ClassName cn3 = new ClassName(); 이런식으로 객체를 생성할 때마다 메모리에선 새로운 객체가 생성이 됩니다. 메모리엔 각각 다른 3개의 ClassName 객체가 생성되는 것입니다. 그러나 스프링에서는 .xml파일에서 스프링 컨테이너를 만들면서 객체를 다 생성해놨습니다. 이렇게 생성된 객체를 getBean() 이라는 함수를 이용하여 호출만 하는 것이기 때문에 동일한 객체에 접근하게 됩니다. 위의 예시처럼 스프링 컨테이너에서 생성된 빈(Bean) 객체의 경우 동일한 타입에서는 기본적으..
-
[Spring] DI(Dependency injection) 란?WEB/Spring 2020. 4. 2. 23:26
1. DI(Dependency Injection) DI란 프로그래밍에서 객체를 만들어서 외부에서 따로 주입하는 방식을 의미합니다. 개체를 다 독립화 시켜서 유연성있게 떼었다 붙였다 프로그램을 쉽게 확장해나가고 유지보수가 용이하게 끔 만들 수 있는 특징을 가지고 있습니다. 이를 이해하기 위해선 '객체지향 프로그래밍의 유연성'에 대한 이해가 필요합니다. 객체지향 프로그래밍을 만들 때 객체를 이용해서 수많은 기능들을 구현합니다. 만약 각각의 개체가 모든 프로그램에 다 엮여있고, 어떤 특정한 객체 하나만 교체하고 싶은 경우가 생길 때, 객체가 전체 프로젝트에 구속이 되어있기 때문에 애써서 구현한 그 객체는 교체를 할 수 없어 프로젝트를 다시 만들어야 하는 불상사가 발생할 수 있습니다. 그러나 객체를 따로따로 분..
-
[Spring] 스프링 프레임워크란?WEB/Spring 2020. 4. 2. 22:35
1. 스프링 프레임워크 프레임워크란 개발자들이 개발을 하기위해 업무를 추상적으로 정의 해놓은 '틀' 입니다. 작업을 하는데 아무 도움 없이 개발해 나가는 방법과 어떠한 틀이 있어서 그 틀 안에서 작업을 해나가는 것은 작업의 효율에 있어서 많은 차이가 날 수 밖에 없습니다. 개발자들은 틀 안에서 주요한 업무, 필요한 기능만 구현을 하면 되는 것이지요. 2. 스프링 프레임워크 모듈 스프링 프레임워크에서 제공하고 있는 모듈을 사용하려면, 모듈에 대한 의존설정을 개발 프로젝트에 XML 파일 등을 이용해 개발자가 직접 설정해주어야 합니다. 스프링 프레임워크에서 제공하고 있는 주요 모듈은 다음과 같습니다. spring-core : 스프링의 핵심인 DI(Dependency Injection)와 IoC(Inversio..