개발서적

    [토비의 스프링 - Vol.1]7.5.2 내장형 데이터베이스

    public class EmbeddedDbTest { EmbeddedDatabase db; JdbcTemplate template; @BeforeEach public void setUp(){ db = new EmbeddedDatabaseBuilder() .setType(HSQL) .addScript("classpath:/embeddeddb/schema.sql") .addScript("classpath:/embeddeddb/data.sql") .build(); template = new JdbcTemplate(db); } @AfterEach public void tearDown(){ db.shutdown(); } @Test public void initData(){ assertEquals(template...

    [토비의 스프링 - Vol.1] 내가 몰랐던 용어 정리

    1. OXM(Object-XML-Mapping): XML과 자바오브젝트를 매핑해서 상호 변환해주는 기술 - 대표적인 기술들 Castor XML : 설정파일이 필요 없는 인트로스펙션 모드를 지원하고 매우 간결하고 가벼운 바인딩 프레임워크 JiBX: 뛰어난 포퍼먼스를 자랑하는 XML바인딩 기술 XmlBeans: 아파치 XML 프로젝트의 하나, XML 정보셋을 효과적으로 제공 Xstream: 관례를 이용해서 설정이 없는 바인딩을 지원하는 XML바인딩 기술 JAXB: JavaSE와 JavaEE 표준에 포함된 기술 2. 인트로스펙션(Introspection): 인트로스펙션(Introspection) 은 자바의 리플렉션(Reflection) 과 같이 객체의 메타데이터(객체의 클래스, 구현 메소드, 프로퍼티, 프로토..

    [토비의 스프링 - Vol.1]7장 XML SQL 서비스 실습(리스트7-19)

    리스트 7-19 생성자 초기호 ㅏ방법을 사용하는 XmlSqlService 클래스 실습을 하는 중 public class XmlSqlService implements SqlService{ ... public void read(SqlRegistry sqlRegistry) { String contextPath = Sqlmap.class.getPackage().getName(); try { JAXBContext context = JAXBContext.newInstance(contextPath); Unmarshaller unmarshaller = context.createUnmarshaller(); InputStream is = UserDao.class.getResourceAsStream("sqlmap.xml")..

    [토비의 스프링 - Vol.1]7.2.1 xml 파일 매핑 - JAXB 관련 실습 중 나온 현상

    JAXB를 사용하여 매핑하는 실습을 진행중 나온 헤맨 상황 1. 아래의 코드를 입력 2. 셀이나 도스창에서 프로젝트 루트 폴더로 이동 후 아래의 명령어를 입력 xjc -springbook.user.sqlservice.jaxb sqlmap.xsd -d src 2번 작업을 하는중 xjc를 찾지 못하면서 진행이 되지 않았음 이유를 찾아보니 1. java -version 으로 치면 jdk 1.8을 보여주고 javac -version 으로 치면 jdk 12를 보여주고 있었음 -> 환경변수를 가보니 JAVA_HOME이 jdk 12로 되어 있어서 jdk1.8로 변경했음 -> xjc는 jdk 12에서는 지원이 되지 않는걸로 보였음 2. 설정 후 다시 명령어를 쳤으나 src파일을 찾을 수 없다는 내용을 보여주며 안됌 -..

    [토비의 스프링 - Vol.1] @Transactional

    1. 대체 정책 - 모든 번호에 @Transactional 어노테이션을 사용할 수 있음 - 타깃 오브젝트 메소드인 [5], [6]이 첫번째 후보 - 타깃 클래스인 [4]이 두번째 후보 - 인터페이스 메소드인 [2], [3]이 세번째 후보 - 인터페이스인 [1]이 네번째 후보 - 세밀한 정책을 이용하고 싶을때는 타깃클래스와 메소드에 걸어두는게 좋음 - 여러 클래스에 한번에 적용하고 싶을때는 인터페이스를 이용하면 효율적임 [1] public interface Service{ [2] void method1(); [3] void method2(); } [4] public class ServiceImpl implements Service { [5] public void method1(){ } [6] public ..

    [토비의 스프링 - Vol.1] xml 트랜잭션 설정 방법

    기본적으로 필요한 정보 (dataSource, transactionManager 필요) 1. bean으로 설정하는 방법 PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED 2. tx와 aop태그를 이용하는 방법 (*beans 태그에 tx, aop관련 설정이 있어야한다) ....

    [토비의 스프링 - Vol.1] 6.6 트랜잭션 속성

    1. 트랜잭션 전파 PROPAGATION_REQUIRED 가장많이 사용되는 트랜잭션 전파 속성 진행 중인 트랜잭션이 없으면 새로 시작, 이미 시작된 트랜잭션이 있으면 이에 참여 PROPAGATION_REQUIRES_NEW 항상 새로운 트랜잭션을 시작한다. 독립적인 트랜잭션이 보장돼야 하는 코드에 적용 PROPAGATION_NOT_SUPPORTED 트랜잭션 없이 동작하도록 만든다. 모든 메소드에 AOP 적용 후 특정 메소드에는 AOP를 적용하고 싶지 않을 경우 많이 사용한다. 2. 격리 수준 서버환경에서 여러개 트랜잭션이 진행 될 때, 작업에 대한 격리 수준 DefaultTransactionDefinition에 설정된 격리수준은 ISOLATION_DEFAULT ISOLATION_DEFAULT는 DataSo..