본문 바로가기 메뉴 바로가기

undefined

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

undefined

검색하기 폼
  • 분류 전체보기 (64)
    • jsp (18)
    • spring (34)
    • source tree & github (4)
    • 줍줍 (8)
      • 코딩하다 안거 (6)
      • 알면 좋겠지 (2)
  • 방명록

spring (34)
day2 class06 스프링 JDBC

1. JdbcTemplate 클래스- DB 연동 시 connection, close 등에 필요한 자바 코드를 대신 처리해 준다.- GoF 디자인 패턴 중 템플릿 메소드 패턴이 적용된 클래스이다.>>> 템플릿 메소드 패턴은 복잡하고 반복되는 알고리즘을 캡슐화해서 재사용하는 패턴으로 정의 할 수 있다.- 반복되는 DB 연동 로직은 JdbcTemplate 클래스의 템플릿 메소드가 제공하고 개발자는 달라지는 SQL 구문과 설정값만 신경 쓰면 된다. 2. 스프링 JDBC 설정2-1. 라이브러리 추가- DBCP, jdbc 관련 설정을 추가한다.>>> 책에 jdbc 표시를 애매하게 해놔서 뒤에 import가 안돼서 삽질했다...- 설정 추가 후 maven dependency에 dbcp, jdbc관련 라이브러리가 생성..

spring 2019. 1. 13. 17:52
day2 class05 어노테이션 기반 AOP

1. 어노테이션 기반 AOP 설정- 엘리먼트만 선언하면 스프링 컨테이너는 AOP 관련 어노테이션들을 인식하고 용도에 맞게 처리해준다.12345678910111213141516 Colored by Color Scriptercs 2. Before 어드바이스1234567891011121314151617@Service@Aspect // Aspect = Pointcut + Advicepublic class BeforeAdvice { // Pointcut @Pointcut("execution(* com.springbook.biz..*Impl.*(..))") public void allPointcut() {} // Advice @Before("allPointcut()") public void beforeLog(Joi..

spring 2019. 1. 6. 21:00
day2 class04 JoinPoint와 바인드 변수

횡단 관심에 해당하는 어드바이스 메소드를 의미 있게 구현하려면 클라이언트가 호출한 비즈니스 메소드의 정보가 필요하다. 1. Before 어드바이스- 호출된 메소드 시그니처만 알 수 있으면 다양한 사전 처리 로직을 구현할 수 있다.12345678910111213// BeforeAdvice.java import org.aspectj.lang.JoinPoint; public class BeforeAdvice { public void beforeLog(JoinPoint jp) { String method = jp.getSignature().getName(); Object[] args = jp.getArgs(); System.out.println("[사전 처리] " + method + "() 메소드 ARGS 정보..

spring 2019. 1. 6. 17:17
day2 class03 어드바이스 동작 시점

어드바이스는 각 조인포인트에 삽입되어 동작할 횡단 관심에 해당하는 공통 기능이다. 1. before 어드바이스- 비즈니스 메소드 실행 전 동작한다.123456789101112 Colored by Color Scriptercs 2. after returning 어드바이스- 비즈니스 메소드가 성공적으로 리턴되면 동작한다.123456789101112 Colored by Color Scriptercs 3. after throwing 어드바이스- 비즈니스 메소드 실행 중 예외가 발생하면 동작한다. (try~catch 블록에서 catch 블록에 해당)123456789101112 Colored by Color Scriptercs- 강제로 예외사항을 발생시켜 준다.12345678// BoardServiceImpl.ja..

spring 2018. 12. 29. 17:32
day2 class02 AOP용어 및 기본 설정

1. 조인포인트(Joinpoint)- 클라이언트가 호출하는 모든 비즈니스 메소드 (예: BoardServiceImpl, UserServiceImpl)- 조인포인트 중에서 포인트컷이 선택되기 때문에 포인트컷 대상, 포인트컷 후보라고도 함 2. 포인트컷(Pointcut)- 필터링된 조인포인트- 트랜잭션의 경우 횡단 관심은 등록, 수정, 삭제 기능의 비즈니스 메소드에 대해서는 당연히 동작해야 하지만, 검색 기능의 메소드에 대해서는 트랜잭션과 무관하므로 동작할 필요가 없다. 이렇게 수많은 비즈니스 메소드 중에서 특정 메소드에서만 횡단 관심에 해당하는 공통 기능을 수행하는 것이다. 123456789101112 Colored by Color Scriptercs- getPointcut으로 설정한 푕트컷 메소드가 호출..

spring 2018. 12. 28. 22:06
day2 class01 스프링AOP

비즈니스 컴포넌트 개발에서 가장 중요한 두 가지 원칙- 낮은 결합도 유지- 높은 응집도 유지 의존성 주입(Dependency Injection)을 이용하면 비즈니스 컴포넌트를 구성하는 객체들의 결합도를 떨어뜨릴 수 있어 의존관계를 쉽게 변경할 수 있다. 스프링의 IoC가 결합도와 관련된 기능이라면, AOP(Aspect Oriented Programming)는 응집도와 관련된 기능이다. 횡단 관심(Crosscutting Concerns)- 비즈니스 로직은 아니지만 로깅, 예외, 트랜잭션 처리 같이 메소드마다 공통으로 등장하는 코드 - 공통으로 관리가 되지 않을 시 비즈니스 메소드의 복잡도가 증가하고 유지보수가 어려워 진다. 핵심 관심(Core Concerns) - 사용자의 요청에 따라 실제로 수행되는 핵심..

spring 2018. 12. 26. 21:23
day1 class07 비즈니스 컴포넌트 실습2

이번에는 어노테이션을 사용하지 않고, setter 인젝션으로 의존성 주입을 처리하고 나서 어노테이션으로 변경해본다.class06과 비슷한 코드가 많으므로 추가적인 부분만 기록했다. 1. UserService 컴포넌트 구조 2. VO 클래스 작성 3. DAO 클래스 작성- 교재상의 주석에선 회원 등록이라고 적혀있지만 회원 조회하는 메소드만 있다. 추후 로그인용으로 같이 사용되거나 추가 될 부분인듯 하다. 4. Service 인터페이스 작성 5. Service 구현 클래스 작성- setter 인젝션 실습을 위해 setter 메소드를 생성한다.12345// UserServiceImpl.java public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO;..

spring 2018. 12. 25. 17:32
day1 class06 비즈니스 컴포넌트 실습1

일반적으로 프로젝트에서 사용하는 구조로 비즈니스 컴포넌트 구현 후 dependency를 점검한다. 1. BoardService 컴포넌트 구조- 일반적으로 비즈니스 컴포넌트는 네 개의 자바 파일로 구성된다. 2. VO(Value Object) 클래스 작성- 레이어와 레이어 사이에서 관련된 데이터를 한꺼번에 주고받을 목적으로 사용하는 클래스- DTO(Data Transfer Object)라 하기도 함- 테이블의 구조를 확인 하고 VO 클래스 작성- 이름 형식 : [테이블명]VO.java 혹은 [테이블명]DTO.java- private 접근제한자로 멤버변수를 선언하고 [alt][shift][[s] 키를 눌러 getter/setter을 생성한다.- [alt][shift][[s] 키를 눌러 toString()함수..

spring 2018. 12. 25. 15:50
day1 class05 어노테이션 기반 설정

1. context 네임스페이스 추가p 네임스페이스 추가와 마찬가지로 [namespaces] > context 항목 체크하면 다음과 같이 소스가 추가된다. 1234567891011121314 Colored by Color Scriptercs 2. 컴포넌트 스캔(component-scan) 설정- 엘리먼트를 정의하면 애플리케이션에서 사용할 객체들을 등록을 하지 않고 자동으로 생성할 수 있다.- base-package속성값은 해당 경로의 패키지로 시작하는 모든 클래스들이 스캔 대상이 된다. 3. @Component- 해당 클래스에 기본 생성자가 있어야만 한다.- 3.1과 3.2의 방법 중 하나를 사용하면 constructor injection이나 setter injection을 이용하지 않아도 된다.- id..

spring 2018. 12. 22. 18:21
day1 class04 의존성 주입

의존성(Dependency)- 객체와 객체의 결합 관계 스프링 프레임워크는 객체의 생성과 의존관계를 컨테이너가 자동으로 관리한다는 점이다. 이것이 스프링 IoC의 핵심 원리이기도 하다. Inversion of Control ㅡ Dependency Lookup ㄴ Dependency Injection ㅡ Setter Injection ㄴ Constructor Injection Dependency Lookup- 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고 클라이언트는 컨테이너가 생성한 객체를 검색(Lookup)하여 사용하는 방식- 앞에서 컨테이너를 사용해왔던 방식, 실제 애플리케이션 개발과정에서는 사용하지 않는다고 함 Dependency Injection- 객체 사이의 의존관계를 스프링 설정 파일에..

spring 2018. 12. 22. 00:41
이전 1 2 3 4 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • #java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent삭제
  • 컨트롤러
  • 의존성
  • Class path contains multiple SLF4J bindings
  • 검색
  • SqlSessionFactoryBean
  • @Autowired
  • blocking
  • LoggingEvent
  • aop
  • 어노테이션
  • servlet context
  • java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
  • aspect oriented programming
  • afterCompletion
  • ViewResolver
  • multiple SLF4J bindings
  • handlermapping
  • postHandler
  • Controller
  • preHandler
  • JoinPoint
  • setter 인젝션
  • XmlWebApplicationContext
  • application context
  • exclude-mapping
  • 횡단 관심
  • 스프링 컨테이너
  • NoClassDefFoundError
  • 의존성 주입
more
«   2025/09   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바