전체 글
-
[SPRING] pointcut 표현식SPRING 2021. 8. 25. 23:07
스프링 포인트컷 표현식 execution(* com.springbook.biz..*Impl.*(..)) : 리턴타입 - * : 모든 반환타입 허용 - void : 반환타입이 void인 메소드 선택 - !void : 반환타입이 void가 아닌 메소드 선택 execution(* com.springbook.biz..*Impl.*(..)) : 패키지 경로 - com.springbook.biz : com.springbook.biz 패키지 선택 - com.springbook.biz.. : com.springbook.biz 로 시작하는 모든 패키지 선택 - com.springbook.biz..impl : com.springbook.biz 로 시작하고, impl 로 끝나는 패키지 선택 execution(* com.sp..
-
[SPRING] AOP 실습SPRING 2021. 8. 25. 17:47
package com.springbook.biz.board.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.springbook.biz.board.BoardService; import com.springbook.biz.board.BoardVO; import com.springbook.biz.common.BeforeAdvice; import com.springbook.biz.common.Log4jAdvice; import com.springbook.biz.common.LogAdvice; @S..
-
[SPRING]어노테이션 기반 AOP 설정하기 (.)SPRING 2021. 8. 25. 17:47
이제는 CONTEXT:COMPONENET-SCAN 속성을 이용하여 어노테이션 기반 AOP를 설정하자. package com.springbook.biz.board; import java.util.List; public interface BoardService { void insertBoard(BoardVO vo); void update(BoardVO vo); void delete(BoardVO vo); BoardVO get(BoardVO vo); List getList(BoardVO vo); } package com.springbook.biz.board; import java.sql.Date; public class BoardVO { private int seq; private String title; p..
-
[SPRING] aspect 환경설정와 AOPSPRING 2021. 8. 24. 14:26
oop(object oriented programming) 와 aop(aspect oriented programming) AOP (Aspect Oriented Programming) : 스프링 핵심 (IoC, DI(결합도 관련) 그리고 AOP) 중 하나. 관점 지향 프로그래밍이다. 흩어진 관심사를 Aspect로 모듈화(어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각 모듈화) 하고 핵심적인 비즈니스 로직에서 분리하여 재사용하는 것이다. 응집도를 높인다. JoinPoint : 호출하는 모든 비즈니스 메소드이다. joinpoint 중 pointcut 이 선택된다. (ServiceImpl 클래스의 모든 메소드들을 조인 포인트라고 생각하면 된다.) Pointcut : ..
-
[SPRING] 데이터 추가, 변경, 삭제SPRING 2021. 8. 24. 11:45
의존 자동 주입 어노테이션 사용하고, spring jdbc를 이용하여 데이터에 접근하여 코드 구성 src/main/java/com.spring.woori.board/BoardService package com.spring.woori.board; import java.util.List; public interface BoardService { void insert(BoardVO vo); void update(BoardVO vo); void delete(BoardVO vo); BoardVO get(BoardVO vo); List getList(BoardVO vo); } src/main/java/com.spring.woori.board/BoardVO package com.spring.woori.board; i..
-
[SQL] COUNT카테고리 없음 2021. 8. 22. 17:06
기본 사용 방법 (해당 table 데이터의 총 개수 구하기) select count(*) from 테이블명; 특정 조건의 데이터 개수 구하는 방법 select count(*) from table where userNo='123' select table(case when userNo='1234' then 1 end) from table select count(case when userNo='1234' then 1 end), count(case when userNo='2345' then 1 end) from table userNo 의 데이터 종류 개수 구하는 방법 (중복을 제거하여 데이터 종류 개수를 보여줌) select count(distinct userNo) from table 그리고 null 값에 대해..
-
[SPRING] Spring 의존성SPRING 2021. 8. 21. 13:33
스프링 의존성 관리 방법 : IoC(Inversion of Control) 개발자가 몇가지 데이터를 설정해주면 전체 프로그램 제어를 프레임워크가 하는 것 스프링이 IoC를 지원하는 두 가지 형태 -Dependency Lookup : 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고 클라이언트는 컨테이너가 생성한 객체를 검색(Lookup)하는 방식 (잘 사용하지 않음) -Dependency Injection : 객체사이의 의존관계를 스프링 설정 파일에 등록된 정보를 바탕으로 컨테이너가 자동으로 처리한다. 의존성 설정을 바꾸고 싶을 때 프로그램 코드를 수정하지 않고 스프링 설정 파일 수정만으로 변경사항을 적용할 수 있다. 유지보수 시 편리하다 (Setter Injection : Setter 메소드 기반 ..
-
[SPRING] Spring ContainerSPRING 2021. 8. 21. 10:51
스프링 컨테이너 종류에는 두가지가 있다. BeanFactory : 객체를 생성하고 관리하는 가장 기본적인 컨테이너 기능 제공. 클라이언트의 요청에 의해서 객체가 생성되는 지연로딩(Lazy Loading) 방식을 사용한다. (스프링 ~3버전/ deprecated 되었다) DefaultListableBeanFactory 객체 인스턴스이다 AbstractRefreshableApplicationContext 에서 따로 생성하고 있다. ApplicationContext : BeanFactory가 제공하는 객체를 관리한다. 컨테이너가 구동되는 시점에 에 등록된 클래스들을 객체 생성하는 즉시로딩(pre loading)방식을 사용한다. (스프링 ~5버전) ClssPathXmlApplivationContext 객체의 인..