목록스프링 (42)
진취적 삶
pom.xml 에 값으로 war 서블릿 /JSP 을 이용한 웹 어플리케이션 개발할 경우 war를 값으로 주어야 한다. 4.0.0 sp5 sp5-chap09 0.0.1-SNAPSHOT war javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp javax.servlet.jsp-api 2.3.2-b02 provided javax.servlet jstl 1.2 org.springframework spring-webmvc 5.0.2.RELEASE maven-compiler-plugin 3.7.0 1.8 1.8 utf-8 의존 설정 build.gradle apply plugin: 'java' apply plugin: 'war' apply plugin:..
이클립스에서 웹 프로젝트를 테스트 하려면 톰캣 필요하다. bookmark
스프링 MVC의 주요 설정 스프링 DispatherServlet 설정 9.3.1 스프링 mvc 설정 @Configuration @EnableWebMvc public class MvcConfig implements WebMvcConfigurer{ @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/WEB-INF/view/",".jsp"); } } @EnableWebMvc : 스..
클라이언트 요청을 알맞게 처리할 컨트롤러 처리 결과를 보여줄 JSP 9.4.1 컨트롤러 구현 @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model,@RequestParam (value="name", required=false) String name) { model.addAttribute("greeting","안녕하세요 " +name ); return "hello"; } } @GetMapping("/hello") 메서드가 처리할 요청 경로를 지정 /hello 경로로 들어온 요청을 hello() 메서드를 이용해서 처리한다고 설정 model 파라미터는 컨트롤러의 처리 결과를 view 에 전달..
데이터 처리와는 상관없는 코드이지만 JDBC 프로그래밍을 할 때 구조적으로 반복되는 코드들이 있다. 구조적인 반복을 줄이기 위한 방법은 템플릿 메서드 패턴과 전략 패턴을 함께 사용한다. 스프링은 이 두 패턴을 엮은 JdbcTemplate 클래스를 제공한다. 커밋과 롤백 처리는 스프링이 알아서 처리하므로 코드를 작성하는 사람은 트랜잭션 처리를 제외한 핵심 코드만 집중해서 작성하면 된다.
org.springframework spring-jdbc 5.0.2.RELEASE org.apache.tomcat tomcat-jdbc 8.5.27 mysql mysql-connector-java 5.1.45 spring-jdbc : JDBC 연동에 필요한 기능 제공 tomcat-jdbc : DB 커넥션풀 기능 제공 mysql-connector-java : MYSQL 연결에 필요한 JDBC 드라이버 제공 커넥션 풀 : 최초 연결에 따른 부하를 줄이기 위해 사용하는것이 커넥션 풀 커넥션 풀은 일정 개수의 DB커넥션을 미리 만들어두는 기법이다 . DB커넥션이 필요한 프로그램은 커넥션 풀에서 커넥션을 가져와 사용한 뒤 커넥션을 다시 풀에 반납한다. 커넥션도 일정 개수로 유지해서 DBMS에 대한 부하를 일정 수..
8.3.1 Tomcat JDBC의 주요 프로퍼티 tomcat JDBC 모듈의 pool.DataSource 클래스는 커넥션 풀 기능을 제공 커넥션 풀은 커넥션을 생성하고 유지한다. 커넥션 풀에 커넥션을 요청하면 해당 커넥션은 활성 상태가 된다. 커넥션을 다시 커넥션 풀에 반환하면 idel 상태가 된다. datasource.getConnection() : pool에서 커넥션을 가져온다. 커넥션을 종료하면 실제 커넥션을 끊지 않고 풀에 반환한다. maxActive는 활성 상태가 가능한 최대 커넥션 개수 maxWait 커넥션 반환 대기 시간 커넥션 풀을 사용하면 미리 커넥션을 생성했다가 필요할 때에 커넥션을 꺼내 쓰므로 구하는 시간이 줄어 전체 응답 시간도 짧아진다. 커넥션 풀을 초기화 할때는 최소 수준의 커넥..
8.4.1 JdbcTemplate 생성 public class AppCtx { @Bean(destroyMethod = "close") public DataSource dataSource(){ DataSource ds = new DataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost/spring5fs?characterEncoding=utf8"); ds.setUsername("spring5"); ds.setPassword("spring5"); ds.setInitialSize(2); ds.setMaxActive(10); ds.setTestWhileIdle(true); ds.setMinEvicta..