Spring 49

학습 // Spring // JDBC // Transaction

업데이트 :: 2018.08.08 트랜잭션트랜잭션 관리자PlatformTransactionManager의 구현클래스 종류로컬 트랜잭션 이용글로컬 트랜잭션 이용선언적 트랜잭션명시적 트랜잭션트랜잭션 격리수준트랜잭션 전파방식트랜잭션선언적 방법프로그램적인 방법 (직접 commit&rollback 선언)트랜잭션 관리자PlatformTransactionManager 인터페이스트랜잭션 처리에 필요한 API 제공PlatformTransactionManager의 구현클래스 종류DataSourceTransactionManagerJDBC 및 마이바티스 등으로 데이터베이스 접근시 이용HibernateTransactionManger하이버네이트를 이용 데이터베이스 접근시 이용JpaTransactionManagerJPA로 데이터베..

Spring/JDBC 2018.08.15

학습 // Spring // JDBC // SQL to POJO

업데이트 :: 2018.08.08 SQl to POJORowMapperBeanPropertyRowMapperResultSetExtractorRowCallbackHandlerSQl to POJO애플리케이션 개발시, POJO 형태로 만들어 쓰는 경향POJO (Plain Old Java Object)주로 특정 자바 모델이나 기능, 프레임워크 등을 따르지 않은 자바 오브젝트를 지칭하는 말스프링이 제공하는 3가지 인터페이스RowMapperJDBC의 ResultSet을 순차적으로 읽으면서 원하는 POJO 형태로 매핑할때 사용ResultSet은 하나의 행을 읽어 하나의 POJO로 변환ResultSetExtractorJDBC의 ResultSet을 자유롭게 제어하며 원하는 POJO형태로 매핑할때 사용ResultSet의 ..

Spring/JDBC 2018.08.15

학습 // Spring // JDBC // DAO(Data Access Object)

업데이트 :: 2018.08.08 개요JdbcTemplate사용법메서드JdbcTemplate 사용법NamedParameterJdbcTemplate 사용법SqlParameterSource 사용법CRUD 예시개요커넥션의 연결과 종료SQL문의 실행SQL문의 실행결과 행에 대한 반복처리예외처리개발자가해야할부분SQL문 정의파라미터 설정ResultSet에서 결과를 가져온 후에, 각 레코드별로 필요한 처리JdbcTemplate사용법JdbcTemplate? 문자를 플레이스홀더로 사용NamedParameterJdbcTemplate파라미터 이름을 사용할 수 있음JdbcTemplate 활용한 데이터 조회@Autowired JdbcTemplate jdbcTemplate; public String findUserName(Str..

Spring/JDBC 2018.08.15

학습 // Spring // JDBC // DataSource

업데이트 :: 2018.08.08 DataSourceDataSourcce 설정애플리케이션모듈이 제공하는 데이터소스애플리케이션서버가 제공하는 데이터소스내장형 데이터베이스를 사용하는 데이터 소스DataSource데이터소스는 애플리케이션이 데이터베이스에 접근하기 위한 추상화된 연결방식커넥션을 제공하는 역할스프링이 제공하는 데이터소스애플리케이션 모듈이 제공하는 데이터소스애플리케이션 서버가 제공하는 데이터소스내장형 데이터베이스르 사용하는 데이터소스DataSourcce 설정pom.xml 설정 org.springframework spring-jdbc 애플리케이션모듈이 제공하는 데이터소스@Configuration @PropertySource("classpath:jdbc.properties") public class P..

Spring/JDBC 2018.08.15

학습 // Spring // AOP // 표현식(SpEL)

업데이트 :: 2018.08.08 표현언어표현언어 설정API 개요빈정의시 SpEL 활용표현식 유형표현언어스프링 프레임워크가 제공하는 표현언어어디에쓰나 ? 왜쓰나 ?모든 제품에 걸쳐서 사용할 수 있는 하나의 표현언어를 스프링 커뮤니티에 제공하기 위해서 만들어짐표현언어 설정spring-expression 의존성모듈 추가pom.xml org.springframework spring-expression API 개요ExpressionParser문자열 형태인 표현식을 분석Expression 객체를 생성하기 위한 메서드 제공Expression분석된 표현식의 내용을 실행하기 위한 메서드 제공SpEL이용 간단 수식풀기ExpressionParser parser = new SpelExpressionParser(); // S..

Spring/DI & AOP 2018.08.14

학습 // Spring // AOP // Message

업데이트 :: 2018.08.09 메세지관리MessageSourceMessageSourceResolvableMessageSource 사용MessageSource APIMessageSourceResolvable 활용프로퍼티파일을 UTF-8로 인코딩다국어 지원메세지관리문자열형태의 메시지프로퍼티파일과 같은 곳에 따로 관리해서 소스코드에서 분리다국어 지원하는 국제화기능MessageSourceMessageSource는 메시지 정보의 출처를 추상화하기 위한 것어딘가에 있을 메시지 정보를 가져오기 위해 getMessage() 제공public interface MessageSource { String getMessage( String code, Object[] args, Locale locale) throws NoSu..

Spring/DI & AOP 2018.08.14

학습 // Spring // AOP // Resource

업데이트 :: 2018.08.08 Resource 인터페이스 & 구현클래스ResourceLoaderResource 접근XML에서 리소스 지정Resource 인터페이스 & 구현클래스구체적인 위치정보를 직접다루지 않아도 리소스에 접근할 수 있음Resource 인터페이스WritableResource 인터페이스InputStreamSourcepublic interface InputStreamSource { InputStream getInputStream() throws IOException; } Resource extends InputStreamSourcepublic interface Resource extends InputStreamSource { boolean exists(); boolean isReadabl..

Spring/DI & AOP 2018.08.14

학습 // Spring // AOP // 프로퍼티(Property)

업데이트 :: 2018.08.08 프로퍼티빈정의시 프로퍼티빈구현시 프로퍼티프로퍼티각종 설정값이 소스코드 안에 기재된 예제@Bean(destroyMethod="close") DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("org.postgresql.Driver"); dataSource.setUrl("jdbc:postgresql://localhost:5432/demo"); dataSource.setUsername("demo"); dataSource.setPassword("pass"); dataSource.setDefaultAutoCommit(false); retu..

Spring/DI & AOP 2018.08.08

학습 // Spring // AOP // 데이터바인딩(DataBinding) & 형변환(Casting)

업데이트 :: 2018.08.08 데이터바인딩과 형변환String 데이터바인딩스프링의 형변환빈을 조작하거나 래핑형변환필드값의 표현형식 포매팅ConversionService포매팅용 애너테이션커스터마이징형변환방식필드포매팅방식데이터바인딩과 형변환데이터바인딩 (DataBinding)자바 객체의 프로퍼티에서 외부에서 입력된 값을 설정하는 과정자바빈즈 (JavaBeans)데이터바인딩이나 프로퍼티관점에서 다뤄지는 객체요청 파라미터 값을 담기 위한 자바빈즈public class EmployeeForm { private String name; private Integer joinedYear; // skip } 설정자 메서드(setter)를 통한 프로퍼티 설정EmployeeForm form = new EmployeeFor..

Spring/DI & AOP 2018.08.08

학습 // Spring // AOP // Advice

업데이트 :: 2018.08.07 Advice 정의 (자바기반)BeforeAfter ReturningAfter ThrowingAfterAroundAdvice 정의 (Xml기반)포인트컷 표현식메서드명으로 조인포인트 선택타입으로 조인포인트 선택그외 방법네임드 포인트컷 활용Advice 대상객체와 인수정보 가져오기Advice 정의 (자바기반)Before@Aspect @Component public class MethodStartLoggingAspect { @Before("execution(* *..*ServiceImpl.*(..))") public void startLog(JoinPoint jp) { System.out.println("메서드시작 : " + jp.getSignature()); } } 메소드 시작..

Spring/DI & AOP 2018.08.08