Spring 51

학습 // Spring // WEB // controller

업데이트 :: 2018.08.10 컨트롤러컨트롤러 구현DI 컨테이너 등록컨트롤러 클래스핸들러 메서드핸들러 메서드의 Param값핸들러 메서드의 Return값뷰 컨트롤러 이용컨트롤러컨트롤러 구현컨트롤러 클래스폼 클래스JSP와 같은 템플릿 파일 (뷰)컨트롤러에서 처리할 내용선언형 처리 : 메서드 시그니처를 참조해서 프론트 컨트롤러가 하는일요청 매핑요청 데이터 취득입력값 검사 수행프로그래밍형 처리 : 컨트롤러 클래스의 메서드 안에서 하는 일입력값 검사 결과 확인비즈니스 로직 호출이동대상 확인 및 데이터 연계이동대상 지정// == 선언형처리 == @RequestMapping(path="/message", method=RequestMethod.GET) // 요청매핑 public String search(@Valid..

Spring/WEB 2018.08.20

학습 // Spring // JDBC // DataAccessException

업데이트 :: 2018.08.08 데이터 접근관련 예외데이터 접근관련 예외처리데이터 접근관련 예외DataAccessException을 부모 클래스로 하는 데이터 접근 예외 계층구조RuntimeException -> DataAccessException -> 01. DataIntegrityViolationException -> 1.1 DuplicationKeyException -> 02. PessimisticLockingFailureException -> 2.1 DeadlockLoserDataAccessException -> 2.2 CannotAcquireLockException -> 03. DataRetrievalFailureException 비검사 예외를 활용한 DataAccessException비검사 ..

Spring/JDBC 2018.08.15

학습 // 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