목록Framework/Spring (26)
능글맞은 구렁이
1. 어노테이션 기반 AOP설정 1) 어노테이션사용을 위한 스프링 설정 ㄱ) 스프링 설정 파일에 엘리먼트를 선언해야하는데 이 엘리먼트를 선언하면 스프링 컨테이너는 AOP관련 어노테이션들을 인식하고 용도에 맞게 처리해준다. ㄴ) AOP관련 어노테이션들은 어드바이스 클래스에 설정한다. ㄷ) 어드바이스 클래스에 선언된 어노테이션들을 스프링 컨테이너가 처리하게 하려면, 반드시 어드바이스 객체가 생성되어 있어야 한다. ∴ 어드바이스 클래스는 반드시 스프링 설정 파일에 등록하거나 @Service어노테이션을 사용하여 컴포넌트가 검색될 수 있도록 해야 한다. 2) 포인트컷 설정 ㄱ) 어드바이스 클래스 위에 @Service 어노테이션 작성 ㄴ) allPointCut() 메소드 → @Pointcut(참조 메소드) 3) 어..

※주의※ XML방식을 사용하려면 AOP에 대한 Namespace가 반드시 있어야 한다. 위빙 작업까지 다 하려면 pom.xml에 aspectjweaver를 추가해줘야 한다. 1. 엘리먼트 AOP설정에서 는 루트 엘리먼트이다. 스프링 설정 파일 내에서 는 중복 사용이 가능하며 하위에는 , 엘리먼트가 위치할 수있다. 2. 엘리먼트 1) 은 여러 번 사용가능하며, 의 하위에 설정할 수 있다. 단 , 하위로 설정된 은 에서만 사용할 수 있다. 2) 의 속성 ㄱ) id 속성="유일한 이름"(중복안됨) ㄴ) expression속성="excution( )" ㄷ) exction(리턴값(*) 패키지. 클래스명. 메서드명(..) ) (*Impl.*(..) : Impl로 끝나는 / Board*.get*(..):Board로 ..

1. advice의 동작시점 어드바이스는 각 조인트포인트에 삽입되어 동작할 횡단 관심에 해당하는 공통 기능이며, 동작시점은 각 AOP 기술마다다르다 2. Before어드바이스 Before어드바이스는 포인트컷으로 지정된 메소드 호출 시, 메소드가 실행되기 전에 처리될 내용들을 기술하기 위해 사용한다. (비즈니스 메소드 실행전 동작) /**어노테이션방법의 애스팩스설정**/ @Service @Aspect public class BeforeAdvice { @Pointcut("execution(* com.freeflux.biz..*Impl.*(..))") public void allPointCut(){} @Before("allPointCut()") public void beforeLog(JoinPoint jp){..

1. AOP이해하기 1.AOP란? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 2. AOP 이해하기 AOP를 이해하는 데에 가장 중요한 핵심 개념이 바로 관심 분리(Separation of Concerns)이다. AOP에서는 1) 메소드마다 공통으로 등장하는 로깅이나 예외, 트랙잭션 처리 같은 코드들을 횡단 관심이라고 하고, 2) 사용자의 요청에 따라 실제로 수행되는 핵심 비즈니스 로직을 핵심 관심이라고 한다. 이 두 관심을 완벽하게 분리할 수 있다면, 우리가 구현하는 메소드에는 실제 비즈니스로직만으로 구성..
1. IoC :DI의 설정 방법 1) xml 장점: 소스를수정하지 않아도 된다. 단점: xml 기반이기 때문에 xml문서에 대한 부담이있다. 2) annotation 장점: 소스 코드에 어떤 역할을 담당하고 언제 주입되는지 적혀있기 때문에 분석이 편리하다. 단점: 변경사항이 발생했을 경우, 소스코드를 수정해야 한다. 3) xml과 annotation혼용 시 annotation : 변경이 이루어지지 않는곳 xml : 수시로 변경이 이루어질 거라 예상되는 곳 특히, 외부라이브러리가 제공하는 클래스는 반드시 xml로 등록해야한다. 2. AOP 1)AOP란? 요청사항에 따른 처리 부분에서각 요청처리 메서드들이공통적으로 사용하는 부분을 추출하여 AOP를 적용 특히 트랜젹션을 적용할 경우에는 반드시 필요하다. 2)..

※스프링에서 가장 중요 Annotation이란? Annotation의 사전적 의미로는 주석이라는 뜻이다. 자바에서 사용될 때의 Annotation은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다. 1. Annotation의 설정 기초 1) Context 네임스페이스 추가 에 Context관련 네임스페이스와 스키마 문서의 위치를 등록해야 한다. 방법 : [Namespaces]→'context'항목 체크! 2) Component-scan설정 스프링 설정 파일에 애플리케이션을 사용할 객체들을 등록하지 않고 자동으로 생성하려면 이라는 엘리먼트를 정의해야 한다. 이 설정을 추가하면 스프링 컨테이너는 클래스 패스에..
1. 의존성 관리 1. Dependency Lookup 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고 클라이언트는 컨테이너가 생성한 객체를 검색하여 사용하는 방식 ※ 실제 애플리케이션 개발 과정에서는 사용하지 않는다. 2. Dependency Injection 객체 사이의 의존관계를 스프링 설정 파일에 등록된 정보를 바탕으로 컨테이너가 자동으로 처리해준다. 따라서 의존성 설정을 바꾸고싶을 때 프로그램 코드를 수정하지 않고 스프링 설정 파일 수정만으로 변경사항을 적용할 수 있어 유지보수가 향상된다. *의존관계를 처리하는 메소드* 1) Setter Injection : setter 메소드 기반의 인젝션 2) Constructior Injection : 생성자 기반의 인젝션 ※의존성이란? 객체와 객체의..

2021.06.14 - [Spring] - Spring-컨테이너종류, XML설정 *결합성이 높은 프로그램* package polymorphism; public class TVuser { public static void main(String[] args) { /**결합도가 높은 프로그램**/ SamsungTV stv=new SamsungTV(); stv.powerOn(); stv.powerOff(); stv.volumeUp(); stv.volumeDown(); //LgTV로 바꿀경우 객체나 생성자나 메서드들을 전부다 바꿔줘야한다. } } ------------------------------------------------------------------------------------------ *결합..
스프링 사용방법 1. 스프링 프레임워크를 이용한 새로운 프레임 워크 개발 이클립스(인텔리j) 내부에 라이브러리를 설치 2. 스프링 프레임워크를 이용해서 프로젝트 1) 이클립스내에 스프링 플러그인을 설치 2) 스프링 전용 툴 (STS:Spring Tool Suite) => 기존 프로젝트 구조 => export X => war 파일로 exportx => 라이브러리 관리: 인터넷(Maven) => pom.xml 프로젝트 생성 시, 폴더 구조 복잡 new-> Spring legacy project ->spring MVC Project선택 -> next->패키지 구조 (3개이상 예:com.jbr.biz)->피니쉬 AOP:관점 지향 프로그래밍 -비즈니스 메소드를 개발할 때, 핵심 비지니스 로직과 각 비즈니스 메서드..
1. 스프링 컨테이너의 종류 1-1. BeanFactory 1) 객체를 생성하고 관리하는 가장 기본적인 컨테이너 기능만 제공 2) 클라이언트의 요청(Lookup)에 의해서만 객체가 생성되는 지연 로딩방(Lazy loading)식을 사용 ∴ 일반적인 스프링 프로젝트에서 BeanFactory를 사용할 일은 전혀 없다. 1-2. ApplicationContext 1) BeanFactory를 상속 받음 2) BeanFactory가 제공하는 객체 관리 기능 외에도 트랜잭션 관리나 메시지 기반의 다국어 처리 등 다양한 기능을 지원한다. 3) 컨테이너가 구동되는 시점에 등록된 클래스들을 객체 생성하는 즉시 로딩방식(pre-loading)으로 동작한다. 4) ApplicationContext 에서 많이 사용하는 클래스..