목록Spring (35)
hyeonga_code
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OcveK/btsC2w2JDWS/3K52uGbH6h88ZQnoE91IUk/img.png)
- @Aspect 어노테이션 이용한 AOP - XML 파일에 Advice, Pointcut 등의 설정을 하지 않고 사용할 수 있습니다. - XML 스키마 기반의 AOP와의 차이점 - @Aspect 어노테이션을 이용하여 Aspect 클래스를 구현합니다. - Aspect 클래스는 Advice 를 구현한 메소드와 Pointcut을 포함합니다. - XML 설정에서 태그를 설정해야 합니다. - @Aspect 클래스 작성하기 - sts.spring.common > ProfilingAspect.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 3..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Cfhhb/btsC38UOQE7/51AKkNknlXk1kKg8NvQvK0/img.png)
- 글이 없는 경우 발생할 예외를 작성합니다. - sts.spring.board.vo > ArticleNotFoundException.java 클래스 생성 ===== 1 2 3 4 5 6 package sts.spring.board.vo; public class ArticleNotFoundException extends Exception { private static final long serialVersionUID = 1L; } - Read 서비스를 제공하는 인터페이스를 작성합니다. - sts.spring.board.service > ReadArticleService.java 인터페이스 생성 ===== 1 2 3 4 5 6 7 8 9 package sts.spring.board.service; impo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsXasq/btsC8REij66/jZJNo9R56qIBhFVepEAJi0/img.png)
- XML 스키마를 활용하여 AOP를 구현하는 과정 - 공통 기능을 제공하는 Advice 클래스를 구현합니다. - XML 설정 파일에서 태그를 이용하여 Aspect를 설정합니다. - Advice를 어떤 Pointcut에 적용할 지 결정합니다. - 공통 기능을 제공할 Advice 클래스를 작성합니다. - src/main/java 폴더에 sts.spring.common 패키지를 생성합니다. - sts.spring.common > ProfilingAdvice.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 package sts.spring.common; import org.aspectj.lang.P..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cbklpF/btsDau9Fd2o/w28CTU5Auw92wgZ1g7PRS0/img.png)
- 게시글을 나타내는 VO를 작성합니다. - src/main/java 폴더에 sts.spring.board.vo 패키지를 생성합니다. - sts.spring.board.vo > ArticleVO.java 클래스를 생성합니다. ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package sts.spring.board.vo; public class ArticleVO { // 속성 private int id; // 기본 생성자 public ArticleVO() {} // getter/setter 메소드 public int getId() { return id; } public void setId() { this.id = id; } } cs - 데이터베이스를 처리..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kCpxo/btsC8XYNHj2/12zzrLZQ04lDKuV0j1JZC1/img.png)
- Spring AOP 심화 - 일반 프로젝트와의 차이 - web 프로젝트인 경우 src/main/webapp 폴더가 있습니다. - 새로운 Maven Project 생성하기 - new > Maven > Maven Project > next > next - Select an Archetype - 버전에 따라 목록이 보여지지 않는 경우가 있습니다. - Catalog : Internal - maven-archetype-quickstart 1.1 선택 > next - Group id : sts.spring - Artifact Id : SpringAOP - Package : sts.spring.aop > Finish >>> SpringAOP 메이븐 프로젝트가 생성됩니다. - 프로젝트에 오류가 발생할 수 있습니다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/briPRh/btsBQj94RNj/EbagKgTr7GlEBNIfsfCAJ0/img.jpg)
- applicationContext.xml 파일의 Namespace에서 context에 체크하여 저장합니다. - Annotation - 컴포턴트 스캔 설정 - 정의 - 빈을 등록하지 않고 자돋으로 생성하기 위해 사용합니다. - 클래스 선언부에 적용 - @Repository - @Componenet - @Service - @Controller - 같이 등록해야 하는 것 - RequiredAnnotationBeanPostProcessor - AutowiredAnnotationBeanPostProcessor - CommonAnnotationBeanPostProcessor - ConfigurationClassPostProcessor - 스프링 빈의 이름 규칙 - 클래스 첫 글자를 소문자로 변환한 클래스 이름입..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTu8zp/btsBG5FaptV/K8IIKesMyDRK0NjdS7zZdK/img.jpg)
- 컬렉션 객체 설정 - 태그 목록 - : 다른 스프링 빈 객체를 값으로 사용합니다. - : 임의의 빈 객체를 생성하여 값으로 사용합니다. - : 래퍼 타입이나 String을 값으로 사용합니다. - , , , : 컬렉션 객체를 값으로 사용합니다. - : null 레퍼런스를 값으로 사용합니다. - - 리스트 타입, 배열에 값 목록을 전달할 때 사용합니다. - - Map 타입에 목록을 전달할 때 사용합니다. - - set 타입에 값 목록을 전달할 때 사용합니다. - - properties 타입에 목록을 전달할 때 사용합니다. - 타입과 배열 - sts.spring.list 패키지 생성 > CollectionBean.java 클래스를 생성합니다. ===== 1 2 3 4 5 6 7 8 9 10 11 12 13..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bscDtf/btsBQVOL2tr/rI4FlLPRziprteFzp9PEx1/img.jpg)
- 네임스페이스 사용하기 - applicationContext.xml - Namespaces > c, p 체크합니다. - 태그를 사용하지 않고 간단하게 사용할 수 있습니다. 'applicationContext.xml' 파일의 beans에 추가됩니다. xmlns:c="http://www.springframework.org/schema/c" xmlns:p="http://www.springframework.org/schema/p" - p 네임스페이스 p:'변수이름'-ref = '참조하는 객체의 아이디' p:'변수 이름' = '설정값' - c 네임스페이스 c:'변수 이름'-ref = '참조하는 객체의 아이디' c:'변수 이름' = '설정값' - src/main/resources > applicationConte..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tp5W3/btsBF313OvR/KtUTkTMHt1QwTljoc6Qd7K/img.jpg)
- Setter 인젝션 사용하기 - Setter 메소드를 이용하여 의존성 주입 - setXXX() 형태의 프로퍼티 이름은 XXX가 됩니다. - src/main/resources > applicationContext.xml 파일 수정 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - sts.spring.ioc3 > 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 49 50 51 52 53 54 55 56 57 58 59 pac..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XwzHQ/btsBHrVroZ6/bYG4lk8ckgPR6Sz2CC1uD0/img.jpg)
- sts.spring.ioc3 패키지 생성하기 - sts.spring.ioc3 > 'Speaker.java' 클래스 생성 ===== 1 2 3 4 5 6 7 package sts.spring.ioc3; public interface Speaker { void volumeUp(); void volumeDown(); } - sts.spring.ioc3 > 'AppleSpeaker.java' 클래스 생성 ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package sts.spring.ioc3; public class AppleSpeaker implements Speaker { public AppleSpeaker() { System.out.println("++..