스프링 AOP 다이내믹 프록시를 이용해 분리한 트랜잭션 코드는 투명한 부가기능 형태로 제공돼야 한다. 프록시 팩토리 빈 방식의 접근 방법 한계 1. 부가기능이 타깃 오브젝트마다 새로 만들어진다. → 스프링에서 제공하는 ProxyFactoryBean 의 어드바이스를 통해 해결 완료! 2. 부가기능 적용이 필요한 타깃 오브젝트마다 거의 비슷한 내용의 ProxyFactoryBean 빈 설정 정보를 추가해줘야 한다. → 여전히 스프링의 ProxyFactoryBean에서도 문제가 되고 있다. 빈 후처리기 BeanPostProcessor 인터페이스를 구현해서 만든다. 스프링 빈 오브젝트로 만들어지고 난 후에 빈 오브젝트를 다시 가공할 수 있게 한다. DefaultAdvisorAutoProxyCreator 빈 후처리..
AOP AOP는 다소 내용이 길어 두 글로 나눈 점 감안해주세요 :) 트랜잭션 코드의 분리 5장까지 다뤘던 upgradeLevel() 메소드를 다시 한번 살펴보자. public void upgradeLevels() throws Exception { TransactionStatus status = this.transactionManager.getTransaction(new DefaultTransactionDefinition()); try { List users = userDao.getAll(); for (User user : users) { if (canUpgradeLevel(user)) { upgradeLevel(user); } } this.transactionManager.commit(status); ..
INSERT 문 테이블에 새로운 튜플을 삽입하는 명령이다. 문법 구조 INSERT INTO 테이블이름[(속성 리스트)] VALUES (값 리스트); 아래처럼 여러 개의 튜플을 대량 삽입할 수도 있다. INSERT INTO Book(bookid, bookname, price, publisher) SELECT bookid, bookname, price, publisher FROM Imported_book; UPDATE 문 특정 속성 값을 수정하는 명령어다. 문법 구조 UPDATE 테이블이름 SET 속성이름1=값1[, 속성이름2=값2, ...] [WHERE ]; DELETE 문 테이블에 있는 튜플을 삭제하는 명령어이다. 문법 구조 DELETE FROM 테이블이름 [WHERE 검색조건]; SQL 내장 함수 SQ..
SELECT문의 구조 SELECT [ALL | DISTINCT] 속성이름(들) FROM 테이블이름(들) [WHERE 검색조건(들)] [GROUP BY 속성이름] [HAVING 검색조건(들)] [ORDER BY 속성이름 [ASC | DESC]] ex) SELECT name, NVL(phone, '연락처업슴') FROM Customer; Where 절 검색할 데이터의 조건을 설정할 수 있다. SELECT * FROM Customers WHERE address LIKE "%서울%"; Where 절에서 사용할 수 있는 조건 술어 술어 연산자 비교 =, , = 범위 BETWEEN 집합 IN, NOT IN 패턴 LIKE NULL IS NULL, IS NOT NULL 복합조건 AND, OR, NOT Order 절 검..
8장 스프링이란 무엇인가? 스프링이 단지 IoC/DI를 제공하는 프레임워크이라고 정의할 수 있을까? 스프링의 사상과 가치, 적용된 원칙을 더 깊이 있게 살펴보자. 스프링의 정의 📝 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 애플리케이션 프레임워크? 특정 계층, 기술, 업무 분야에 국한되지 않고 애플리케이션 전 영역을 포괄하는 범용적 프레임워크 애플리케이션 개발 전 과정을 빠르고, 편리하고, 효율적으로 진행하는것이 일차적인 목표 경량급? 스프링 자체 코드나 기술이 가볍다는 의미가 아니다. 불필요하게 무겁지 않다는 의미이다. ↔ EJB 비싼 서버를 사용할 필요 없이 가장 단순한 서버환경인 톰캣, 제티에서도 완벽하게 동작한다. 자바 엔터프라이즈 개발을 편하게? 근본적인 부분..
CHAPTER 5. 서비스 추상화 사용자 레벨 관리 기능 추가하기 UserDao 클래스에 서비스 사용자를 관리할 수 있는 비즈니스 로직을 추가해보자. Level Enum : 사용자의 레벨 관리하기 사용자 엔티티에 레벨 필드를 추가하는 3가지 방법 1. DB에 varchar 타입으로 선언 후, “BASIC”, “SILVER”, “GOLD”라고 넣는다. ⇒ BAD 2. 각 레벨을 코드화해서 0, 1, 2와 같은 숫자로 넣는다. ⇒ BAD 3. 자바 5 이상에서 제공하는 enum을 이용한다. ⇒ GOOD! Level Enum 클래스 만들기 public enum Level { BASIC(1), SILVER(2), GOLD(3); private final int value; Level(int value) { th..
- Total
- Today
- Yesterday
- linuxawk
- awk프로그램
- 쇼미더코드
- 사용자ID
- cron시스템
- 백준27211
- SELECT #SELECTFROM #WHERE #ORDERBY #GROUPBY #HAVING #EXISTS #NOTEXISTS #UNION #MINUS #INTERSECTION #SQL #SQLPLUS
- OnActivityForResult
- 버추억박스에러
- Baekjoon27211
- virtualbox
- cat
- linuxtouch
- 코테
- whatis
- Baekjoon27219
- linuxgedit
- atq
- 버추억박스오류
- 리눅스cron
- baekjoon
- GithubAPI
- E_FAIL
- 백준
- GitHubAPIforJava
- Linux
- 리눅스
- linux파일
- api문서
- 백준27219
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |