목록Spring (35)
hyeonga_code
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b51UOy/btsBOfzSvFE/52AazdPHKxI6bUz6nnJe8k/img.jpg)
- 생성자 인젝션 이용하기 - sts.spring.ioc2 > SamsungTV2.java 클래스 생성 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 package sts.spring.ioc2; public class SamsungTV2 implements TV { // SonySpeaker를 사용할 수 있게 추가합니다. private SonySpeaker sp; public SamsungTV2() { System.out.println("[ Create SamsungTV2 ]"); } // 생성자 추가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dyPoMr/btsBQQzw323/86tKgJK2mc7FdmktmHGKk0/img.jpg)
- 스프링 의존성 관리 방법 1. Dependency Lookup : 검색 2. Dependency Injection : 주입 - 의존성 설정을 바꾸고 싶은 경우 소스코드를 변경하지 않고 스프링 설정 파일만 수정하여 변경사항을 적용할 수 있어 유지보수가 향상됩니다. - Setter 메소드를 기반으로 하는 Setter Injection과 생성자를 기반으로 하는 Costructor Injection으로 나뉩니다. - sts.spring.ioc2 패키지에 'SonySpeaker.java' 클래스 생성 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package sts.spring.ioc2; public class SonySpeaker { public SonySpeaker() ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bU7pOc/btsBQoXzAa8/54KgqVOk7Wl9LNKGRpXod1/img.jpg)
- scope : 빈 객체의 범위 - 하나의 빈 설정에 대해 한 개의 빈 객체만을 생성 - scope 속성 값 - singleton - 스프링 컨테이너에 한 개의 빈 객체만 존재합니다. - 기본값 - prototype - 빈을 사용할 때마다 객체를 생성합니다. - request - HTTP 요청마다 빈 객체를 생성합니다. - WebApplicationContext에서 적용 - session - HTTP 세션마다 빈 객체를 생성합니다. - WebApplicationContext에서 적용 - global-session - 글로벌 HTTP 세션에 대해 빈 객체를 생성합니다. - 포틀릿을 지원하는 컨텍스트에 대해서만 적용이 가능합니다. - 'applicationContext.xml' ===== 1 2 3 4 5..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pG22d/btsBGEAGAxb/6ZtQaoEg43PFg4XkKGuCJK/img.jpg)
- 스프링 컨테이너 - BeanFactory - 빈 객체 간의 의존 관계를 설정하는 기능을 제공하는 단순한 컨테이너 - Resource에서 정보를 읽어옴 - XmlBeanFactory 객체를 생성 - getBean() 메소드로 빈을 가져와 사용 - applicationContext - 추가적인 기능을 제공 - 빈 객체 라이프 사이클, 파일과 같은 자원의 추상화, 메세지 지원 및 국제화 지원, 이벤트 지원, XML 스키마 확장을 통한 편리한 설정 - ClassPathXmlApplicationContext - FileSystemXmlApplicationContext - XmlApplicationContext - GenericXmlApplicationContext - 파일 시스템이나 클래스 경로에 있는 XML..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cfEMdT/btsBG6wYIvZ/t1UGdaFtuj9ACcXFFnkN1K/img.jpg)
- Spring Legacy Project 프로젝트 생성하기 - New > Spring Legacy Project - Name : '프로젝트 이름' - Templates : Spring MVC Project > Next - Project Settings > Spring MVC Project : sts.spring.ioc으로 작성합니다. - 나중에 변경하기 복잡하므로 처음 생성 시 정확하게 작성합니다. > Finish - 에러 발생합니다. - JRE가 1.6으로 지정되어 있습니다. - properties > Project Facets - Java : 11 version으로 변경합니다. - Runtimes : Tomcat 체크합니다. > Apply and Close - src/main/java > sts.s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nMoeM/btsBR7nt59a/XKzJZ1dfa7QyJVT55kKIJk/img.jpg)
- 다형성을 이용 - src > main > webapp > WEB-INF > web.xml 파일에서 내용을 삭제합니다. - 삭제하고 남은 내용 ===== 1 2 3 4 5 6 - src > pom.xml 파일 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 9..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TtNB8/btsBF2ohbpw/sFdQ5GXOStR8wWkwCgeETK/img.jpg)
- 스프링 IoC - 소스코드를 변경하지 않고 매개 변수를 이요하여 객체를 변경할 수 있도록 구현합니다. - 스프링 설정 파일 생성 및 스프링 컨테이너 구동 1) 클라이언트가 스프링 설정 파일을 로딩하여 컨테이너를 구동합니다. 2) 스프링 설정 파일에 bean 등록된 객체를 생성 3) getBean() 메소드로 bean에 설정한 객체를 요청 4) 객체를 반환 - src/main/resources > Spring Bean Configuration File 생성하기 'applicationContext.xml' 추가 ===== 1 2 3 4 5 6 7 8 9 - src/main/java > basic.spring.polymorphism > 'TVUser4.java' 클래스 생성 ===== 1 2 3 4 5 6..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cl5nwB/btsBR802EaB/Igob8T47oOkASOfTgKfrak/img.jpg)
- 디자인 패턴 이용하는 방식 - basic.spring.polymorphism > 'BeanFactory.java' 클래스 생성 ===== 1 2 3 4 5 6 7 8 9 10 11 package basic.spring.polymorphism; public class BeanFactory { public Object getBean(String beanName) { if(beanName.equals("samsung")) return new SamsungTV(); else if(beanName.equals("lg")) return new LgTV(); return null; } } - basic.spring.polymorphism > 'TVUser3.java' 클래스 생성 ===== 1 2 3 4 5 6 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/E3vTr/btsBHPPhuAs/RCpcYDwjkcnMZ4jYRTymCk/img.jpg)
- 다형성을 이용한 방식 - basic.spring.polymorphism > 'TV.java' 인터페이스 생성 ===== 1 2 3 4 5 6 7 8 package basic.spring.polymorphism; public interface TV { public void powerOn(); public void powerOff(); public void volumeUp(); public void volumeDown(); } - basic.spring.polymorphism > 'SamsungTV2.java' 클래스 생성 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package basic.spring.polymorphism..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FRkwQ/btsBRSDUb07/IfuwxKOsB1fEhf0IBKaTNK/img.jpg)
- 지금까지 사용한 방식으로 작성 - src/main/java > basic.spring.polymorphism 패키지 생성 - basic.spring.polymorphism > 'SamsungTV.java' 클래스 생성 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package basic.spring.polymorphism; public class SamsungTV { public void powerOn() { System.out.println("SamsungTV 전원을 켠다."); } public void powerOff() { System.out.println("SamsungTV 전원을 끈다."); } public void volumeUp() { ..