본문 바로가기

Spring Framework/study7

DAO 패턴은 왜 그렇게 생겼나? spring을 공부하면서 DB에 접근할때 왜 이러한 패턴을 생겼는지 궁금했다. 어쩌다가 이렇게 구성이 되었는지 알아보자. 내용은 토비의 스프링 3.1를 참고했습니다. #1 . 초기 JDBC로 접근 public class UserDao { public void add(User user) throws ClassNotFoundException, SQLException { Class.forName("com.mysql. jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook" , "spring" , "book"); PreparedStatement ps =c.prepareStatement("insert i.. 2020. 3. 29.
Spring 트랜잭션 처리 @Transactional 데이터베이스 트랜잭션은 데이터베이스에서 상호작용의 단위 또는 데이터베이스 관리시스템이라 할 수 있다. 연관된 2개 이상의 쿼리를 실행할 때 , 모든 작업이 끝났을 때 COMMIT을 수행하고 중간에 오류가 발생하면 ROLLBACK하는 것이 기본이다. 트랜잭션을 JAVA에서 처리 Connection conn = null try { conn = DriverManager.getConnection(jdbcUrl, user, pw); conn.setAutoCommit(false); /* ...쿼리 실행.. */ conn.commit(); } catch (SQLException e) { if(conn!=null) { try { conn.rollback(); } catch (SQLException e1) { } } }.. 2020. 3. 7.
Spring Bean Scope ? 스프링은 기본적으로 모든 bean을 singleton으로 생성하여 관리한다. - 구체적으로는 애플리케이션 구동 시 JVM안에서 스프링이 bean마다 하나의 객체 생성 의미 - 그래소 우리는 스프링을 통해서 bean을 제공받으면 언제나 주입받은 bean은 동일한 객체하는 가정하에서 개발을 해야 한다. request , session , global session 의 scope는 일반 spring 애플리케이션이 아닌, spring MVC 에서만 사용 1. Singleton -싱글톤 bean은 Spring 컨테이너에서 한번 생성된다. 컨테이너가 사라질때 bean도 제거 -생성된 하나의 인스턴스는 single bean cache에 저장되고, 해당 bean에 대한 요청과 참조가 있으면 캐시된 객체 반환 즉, 하나.. 2020. 3. 6.
DI(Dependency Injection) ? 스프링의 핵심 개념 객체사이의 의존 관계를 자기 자신이 아닌 외부에 의해서 설정된다는 개념이다 스프링에서는 설정파일을 사용하여 손쉽게 객체간의 의존관계를 설정하기에 스프링을 DI 컨테이너라고 부르기도 한다. DI 컨테이너는 어떤 클래스가 필요로 하는 인스턴스를 자동으로 생성, 취득하여 연결시켜주는 역활을 한다. DI 컨테이너가 인스턴스를 생성하도록 하려면 프로그램 소스 내부에서 new 로 직접 생성하지 않고 설정파일에서 필요로 하는 클래스의 정보를 설정해 주어야한다. 클래스간의 의존관계를 관리하기 위한 방법 2가지 - Constructor Injection (생성자) - Setter Injection (세터) 가. Constructor Injection : 생성자를 통해서 의존 관계를 연결시키는 것을 말.. 2019. 12. 23.