본문 바로가기

스프링 프레임워크5

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.
마이바티스에서 프로시저를 호출하는 방법 본 글에서는 티베로(오라클)의 데이터베이스를 사용하는 마이바티스 프로젝트에서 프로시저를 호출하는 것과 프로시저에 값을 전달하고 받는 방법을 소스 코드와 함께 설명한다. 프로시저 작성 예제 아래의 SQL(Structured Query Language)처럼 프로시저를 작성한다. CREATE OR REPLACE PROCEDURE EXAMPLE_PROCEDURE( IN_DATA IN VARCHAR2, OUT_ERROR_CODE OUT NUMBER, OUT_ERROR_MESSAGE OUT VARCHAR2 ) IS BEGIN INSERT INTO EXAMPLE_TABLE(COLUMN) VALUES(IN_DATA); OUT_ERROR_CODE := 0; OUT_ERROR_MESSAGE := '성공'; EXCEPTIO.. 2022. 11. 8.
스프링 모바일을 추가하여 모바일 장치를 인식하자 스프링 프레임워크에서 모바일 장치를 인식하는 방법은 여러가지가 있겠지만 그 중 스프링 모바일을 가져와서 코드 몇줄만으로 장치를 인식하는 방법을 소개하려고 한다. 현재 기준으로 스프링 모바일은 2.0.0.M3가 안정적인 배포 버전이다. 메이븐으로 스프링 모바일을 프로젝트에 추가하는 방법은 아래와 같다. spring-milestones Spring Milestones https://repo.spring.io/libs-milestone false 메이븐 저장소를 위의 코드처럼 추가한다. org.springframework.mobile spring-mobile-device 2.0.0.M3 그리고 스프링 모바일 라이브러리를 위의 코드처럼 추가한다. 그 후 스프링 모바일 인터셉터를 위의 코드처럼 서블릿 설정파일에 .. 2021. 2. 12.
스프링 프레임워크에서 트랜잭션을 설정할 때 주의해야할 것 스프링 프레임워크에서 트랜잭션을 설정하는 것은 인터넷에 잘 나와있다. 하지만 몇 가지 중요한 포인트를 놓쳐서 하루 종일 시간을 날렸다. 트랜잭션 어노테이션 혹은 트랜잭션을 위한 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.