본문 바로가기

스프링 프레임워크8

728x90
반응형
스프링 부트 IPv4 주소 우선 사용 설정 스프링 부트(Spring Boot)에서 IPv4 주소를 우선적으로 사용하도록 설정하려면 아래의 자바 실행 옵션을 추가해야 한다. 바인딩 주소를 IPv4로 설정하는 것으로 IPv4로 통신하도록 설정할 수 있지만 바인딩 주소에 제한이 발생하는 단점이 있기에 아래의 설정을 추가하는 방법을 권장한다.-Djava.net.preferIPv4Stack=true스프링 부트 프로젝트에서 'Run As' → 'Run Configurations'로 이동한다.  'Spring Boot App' → 'VM arguments:' 화면으로 이동하여 아래의 사진처럼 IPv4를 우선적으로 사용하여 통신하도록 설정한다.스프링 부트를 재실행하면 IPv4를 사용하여 통신하는 것을 확인할 수 있다. 자바는 IPv6와 IPv4 둘 다 통신이 .. 2024. 8. 30.
[메이븐] 스프링 부트에서 Javadoc 사용하기 의존성 추가메이븐(Maven)으로 의존성을 관리하는 환경의 스프링 부트에서 'Javadoc'을 사용하려면 'pom.xml' 파일의 'dependencies' 사이에 아래의 의존성을 추가한다. org.apache.maven.plugins maven-javadoc-plugin 3.7.0플러그인 설정 'pom.xml' 파일의 'plugins' 사이에 아래의 설정을 추가한다. org.apache.maven.plugins maven-javadoc-plugin openframework.css true 128m 256m true false 1.6 true true .. 2024. 6. 20.
스프링 부트 실행 스크립트에서 서버 포트 변경하는 방법 스프링 부트를 실행하는 스크립트에서 포트를 변경하려면 포트 정보를 아래와 같이 입력하면 된다.-Dserver.port=9034 2024. 5. 28.
[스프링] 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.