목록Framework/Spring (24)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Sn7M4/btrgBCckJIy/eQBkE75atFmXstowNCVfTk/img.png)
xml 파일에서 profile 이용 xml파일을 비교해보면 bean의 이름과 class는 같다. 서로 같은 bean인데 안에 있는 내용만 다른 것이다. profile을 사용하면 animal이라는 이름으로 이 두개의 bean 중 하나를 선택하여 사용할 수 있다. scanner을 이용하면 클라이언트의 입력을 받을 수 있다. 이 scanner을 이용해서 profile 값을 입력받는다. 그 다음 이 입력받은 값을 input에다 대입하고 input한 값을 setActiveProfiles() 메서드에다 매개변수로 넣는다. 이렇게 하면 아래의 두 개의 xml파일 중 profile 값이 입력받은 값과 일치한 xml 파일을 골라 bean을 얻어온다. 즉, profile을 이용해서 원하는 bean 객체를 얻어올 수 있는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cxccnZ/btrfQnFHltx/KP2WOVKbNNA60EFnOaAtfk/img.png)
context:property-placeholder 사용하는 방법 context:property-placeholder을 이용하면 쉽게 외부파일에 있는 내용을 가져올 수 있다. context:property-placeholder을 이용해서 외부파일을 가져와 bean객체에 값을 설정한다. evironment객체를 사용하는 것보다 훨씬 간단한 방법이다. anotation이용하는 방법(xml안쓰고 class(.java)사용) xml파일 대신 configuration역할을 할 class하나를 만들고 위와 같이 작성한다. placeholderConfig메소드는 위에서 사용했던 property-placeholder와 같은 역할을 한다. 그렇기 때문에 꼭 생성해줘야 한다. @Configuartion : configur..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ceYKoO/btrfsdj5hNe/oFi9aIkOKWvY5PHXCGWUA0/img.png)
Environment객체 외부 파일의 내용을 읽어와서 그 안의 설정 값들을 사용할 수 있게하는 객체이다. 하나의 웹 애플리케이션에는 evironment객체 하나만 존재할 수 있고, evironment객체의 getProperty() 메소드를 사용해서 값을 추출해낼 수 있다. environment객체 사용 예1 PropertySources 설명 : environment객체는 정보를 프로퍼티로 관리하기 때문에 여러 프로퍼티들을 가지고 있다. 그래서 정보를 가져올 때도 getProperty()함수를 사용하는 것이다. 즉, PropertySources란, environment객체가 가지고 있는 모든 프로퍼티들을 뜻한다. 이렇게 해서 프로퍼티 정보들을 가져와서 출력할 수 있다. 다른 방법 먼저 class를 하나 만..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BTznd/btrfbZmFlmv/l6iKHKLLkzfyhKjcixKDd0/img.png)
IOC컨테이너란? 객체(bean)의 생명주기를 관리하는 객체 저장소이다. IOC컨테이너와 bean의 생명주기 bean생명주기 관련 함수 bean 자료형 class에 implements InitializingBean, DisposableBean하고 사용할 수 있는 함수 어노테이션@PostConstruct @PreDestroy쓰고 사용할 수 있는 함수 출처 : https://www.youtube.com/watch?v=zKI4GWT5Xzs&list=PLPvokKzUkaLeiLUDKpqRdP8jtLU8lLKgR&index=7 변형 및 요약
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Q2uc1/btrfbYgdILt/mm4aUHKxuskblkzTtI7Fmk/img.png)
xml을 이용해서 의존성 주입하는 것만 있는 줄 알고 있었으나 어노테이션을 이용하여 JAVA로도 객체를 만들고 주입할 수 있다는 것을 알게되어 기록하게 되었다. 사용하는 어노테이션 : @Configuration : 이 클래스는 스프링 설정에 이용하는 클래스입니다.를 뜻함 @Bean : 이것은 객체입니다.를 뜻함 이렇게 JAVA를 사용해서 의존성 주입을 할 수 있다. 하지만 내부적으로는 자바 코드를 xml로 변환하는 방식이어서 xml로 의존성 주입을 하는 방식을 사용하는게 더 나을 것 같다는 생각이 든다. 출처 : https://www.youtube.com/watch?v=MabPKw0HapE&list=PLPvokKzUkaLeiLUDKpqRdP8jtLU8lLKgR&index=6 변형 및 요약
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cVtVsD/btrfcwwGIlZ/DstKB6TYUXvLplEIAkHKq0/img.png)
의존관계 A class에서 B class의 객체를 사용하고있으면, A class는 B class의 객체가 없으면 안되고, 즉, 'A는 B에 의존하고 있다.' 라고 말할 수 있다. 1. 클래스 안에서 객체 생성 ex) new BClass(), new CClass() 2. 외부에서 객체를 생성해서 {setter()나 construct()(=생성자)를 이용해서} 클래스 안에 넣어준다. 여기서 2번을 의존성 주입 즉, DI라고 한다. 의존성 주입(DI) 의존성 주입은 Spring framework의 가장 대표적인 특징이다. 의존성 주입이란, 외부에서 객체를 만들어서 class에 주입하는 방식이다. Dependency(의존) + Injection(주입) = DependencyInjection(의존성 주입) 보통 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dUMXpB/btreY34g772/xRBNFIxQP6TMwSVy35bSEk/img.png)
HandlerMapping HandlerMapping이란 클라이언트가 요청한 주소를 처리할 controller을 지정하는 역할을 하는 것이다. view resolver view resolver란 controller에서 받아온 view파일 명을 경로로 만들어 찾는 역할을 하는 것이다. Spring Framework 동작 원리 1. 클라이언트 요청 2. web.xml 실행 3. web.xml에서 DispatcherServlet이 의 형태로 들어오는 요청을 가로채고 servlet-context.xml을 실행 4. Controller클래스를 bean객체로 만듦 5. Handlermapping이 만들어진 bean객체 중에서 클라이언트의 요청 주소와 맞는 controller 찾음 6. controller 연결 7 ..