본문 바로가기

Spring Framework4

728x90
반응형
[스프링] DataSource 스프링 빈을 자바 코드로 생성하기 값을 읽어오는 방식 등의 이유로 DataSource 스프링 빈을 자바 코드로 생성해야하는 경우가 있다. 그런 경우 아래와 같은 소스 코드로 자바 빈을 생성할 수 있다. 예제 소스 연결하고자 하는 데이터베이스 맞춰서 드라이버와 주소, 계정 정보를 수정하여 사용한다. 아래 소스 코드는 스프링 프레임워크 4.0.9에서 동작하는 것을 확인했다. @Bean public DataSource dataSource() { SimpleDriverDataSource dataSourceVideo = new SimpleDriverDataSource(); dataSourceVideo.setDriverClass(org.mariadb.jdbc.Driver.class); dataSourceVideo.setUrl("jdbc:mariad.. 2022. 11. 23.
스프링(Spring) 프로젝트에서 메이븐(Maven)의 생명주기(lifecyle) 관련 문제가 발생할 때 문제 발생 최근에 스프링(Spring, 전자정부) 프로젝트에서 메이븐(Maven) 관련 오류가 발생했었다. 오류 메시지는 아래와 같았는데 문제 해결이랑 전혀 관계 없는 메시지라서 한참을 헤맸다. Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-compiler-plugin:maven-plugin:3.1:runtime Cause: invalid END header (bad central directory offset) 문제 해결 스프링 프로젝트의 메이븐 환경을 해제한 다음 기존 메이븐 저장소(Repository)를 비우고 다시 메이븐 환경을 프로젝트에 활성화한 후 메이븐 업데이트(Update)를 수행하니 해결.. 2022. 8. 9.
스프링 프레임워크에서 트랜잭션을 설정할 때 주의해야할 것 스프링 프레임워크에서 트랜잭션을 설정하는 것은 인터넷에 잘 나와있다. 하지만 몇 가지 중요한 포인트를 놓쳐서 하루 종일 시간을 날렸다. 트랜잭션 어노테이션 혹은 트랜잭션을 위한 AOP를 설정할 때는 서블릿 컨텍스트 설정 파일(servlet-context)에다가 해당 내용을 기입해야한다는 것이었다. "설정 값만 보면 정상인데 왜 이게 동작을 안 하지?"라는 생각을 하며 있었는데 참 허탈하다. 이거 외에도 컨트롤러가 아닌 @Component, @Service, @Repository 유형의 클래스 또는 그 클래스의 메서드에다가 트랜잭션을 설정한다는 점과 트랜잭션을 위해서는 인터페이스가 필요하다는 것을 알았다. 아직은 어떤 이유로 이렇게 써야하는 건지를 모르겠다. 나중에 알게 되면 내용을 추가하겠다. [참고] .. 2020. 9. 7.
스프링 시큐리티를 쓸 때 한글 관련 인코딩으로 주의해야할 점 스프링 시큐리티(Spring Security)를 쓴다면 주의해야할 것이 있다. 내가 이것 때문에 오랜 시간 삽질을 했었다. 스프링 시큐리티는 ISO/IEC 8859-1 인코딩을 쓰는데 필터 순서를 제대로 안 맞춰주면 스프링 시큐리티의 필터가 먼저 동작하여 인코딩이 의도한 대로 동작하지 않는다. 나는 한글을 사용해야하고 웹프로젝트와 DB 모두 UTF-8로 설정되어 있었기 때문에 UTF-8로 데이터가 통신되어야 하는데 web.xml 설정 파일에서 필터 순서를 잘 못 지정해줘서 데이터가 ISO/IEC 8859-1로 통신되고 있었다. 설정 파일에서 필터는 위에(낮은 라인 번호) 있는 것이 먼저 실행된다. 검색하다보니 정통적으로 실수하는 내용인 것을 알았다. 다시는 실수하지 않기 위해 글을 남긴다. [참조] [1.. 2020. 9. 6.