1. CommandLineRunner는 스프링 부트가 제공하는 단순한 인터페이스이다 package org.springframework.boot; public abstract interface CommandLineRunner { public abstract void run(java.lang.String... args) throws java.lang.Exception; } 2. 이 클래스를 구현하여 run메소드를 작성하면 프로그램 기동시에 ApplicationContext 생성이 종료된 후에 run메소드가 자동으로 실행된다. 3. 초기화 명령을 담는 곳으로 사용되며 주로 개발 시에 간단한 테스트 용도로 이용된다. 4. 사용법이 간단하기 때문에 기동 클래스에서 상속하여 사용하는 경우가 많지만 separate ..
1. WebJars는 jQuery나 Bootstrap같은 static 라이브러리를 다운로드하고 설치하는 번거로움을 제거해 준다. 2. 문제는 인터넷을 찾아보면 사용하는 코드는 있는데 설정하는 방법은 잘 나오지 않는다. 3. 일반적으로 mvn repository에서 찾아 pom.xml에 붙이면 동작하는데, 가끔은 404에러가 뜨고 찾지 못할 때가 있다. 3-1 이전에는 되었는지는 모르겠지만 내가 webjar를 사용하기 시작한 스프링 부트 2에서는 돌아가지가 았았다. 3-2 내가 알기로도 아래 경로는 기본적으로 그냥 돌아가는 것이 맞다. webjars는 META-INF/resources로 되어 있다. classpath:/static classpath:/public classpath:/resources/ cl..
1. 한번 씩 The valid characters are defined in RFC 7230 and RFC 3986 이런 거 뜨면서 예외가 뜨는 경우가 있다. 1-1 개발을 하다가 중간에 생기면 링크를 걸 때 자바스크립트로 encodeURI 함수로 감싸 주면 되는데, 1-2 스프링 REST data를 쓰는 경우, 자동생성코드가 이런 오류가 나는 경우가 있다. 1-3 이런 경우는 아래 처럼 그냥 tomcat 대신에 jetty를 쓰는 게 편하다. 2. 변경하는 방법은 starter-tomcat을 쓰는 starter찾아서 아래 처럼 tomcat을 빼주고 jetty를 더하면 된다. 2-1 data-rest가 포함할 수도 있고, web이 포함할 수도 있으니 상황에 찾아서 잘 판단하면 된다. org.springf..
1. Spring Boot와 Spring DATA를 사용하면 Repository 단에서 자동적으로 @Transactional이 붙는다. Spring Data JPA - Reference Documentation Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") v docs.spring.io 2. 그래서 보..
1. 이 포스트는 Spring : RestTemplate with Java Config - CRUD 클라이언트 구현의 후속 포스트이다. Spring : REST + Hibernate with Java Config - CRUD 클라이언트 구현 1. 이 포스트는 지난 포스트에서 작성한 CRUD REST서버에 데이터를 요청하는 Client를 작성한다. 1-1 일반 WEB MVC개발과 다를 게 하나도 없다. 1-2 차이점이 있다면 데이터베이스 관리를 하지 않기 때문� kogle.tistory.com 2. 1항목은 Spring REST와 JSP를 사용한 클라이언트 구현이었다. 이번에는 Spring Boot과 Thymeleaf를 사용한다. 3. 작업순서 3-1 Spring Starter Project를 이용한 프로..
1. 스프링 부트의 starter dependency는 함께 사용하는 호환 되는 라이브러리의 묶음이다. 1-1 어떤 라이브러리가 묶여 있는지는 elicpse의 pom.xml 열면 나오는 dependecy hierarchy에서 볼 수 있다. 1-2 pom.xml파일을 보면 제일 윗부분에 starter-parent라는 것이 있다. 1-2-1 Default compiler lever, UTF-8 encoding같은 설정이 있고 spring boot의 버전을 지정한다. 1-2-2 자바 버전수정은 spring에서 했던 것처럼 java.version 프로퍼티를 설정하면 된다. 11 1-2-3 starter-parent는 spring boot plugin에 대한 기본 설정값을 가지고 있다. 아래 코드만 추가하면 된다..
0. Spring Security를 사용하려면 0-1. Spring Security Dependency를 pom에 등록한다. 0-2. SecurityConfig파일을 생성하여 필요한 Bean을 등록한다. 0-2-0. WebSecurityConfigurerAdapter를 extends해서 간편하게 구현할 수 있다. 0-2-1. 일반적으로 개발자가 구현한 컴포넌트는 @Component로 등록하면 끝이지만 0-2-2. 스프링에서 제공하는 컴포넌트 중 기본적으로 생성되지 않는 것들은 0-2-3. Config에서 별도로 제공해야 한다. 0-3. 여기서 생성해야 프로그램의 다른 부분에서 주입해서 사용할 수 있다. 1. BCryptPasswordEncoder 사용하기 1-1. 이 Encoder는 스프링에서 자동으로 ..
0. 스프링 부트를 사용할 경우 복잡하게 placeholder를 따로 설정할 필요없이 그냥 쓰면 된다. 0-1 프로그램에서 사용할 속성을 application.properties파일에 입력한다. 0-1-1 application.properties를 사용할 때는 윈도우라도 위의 설정 예시처럼 \\ 대신 /을 사용해야 한다. itinerary.email.subject=Itinerary for your Flight itinerary.email.body=Please check your itinerary attached itinerary.pdf.filePath=C:/Users/heops/Documents/itinerary-pdfs 0-2. 사용할 프로그램에서 @Value("${}") 로 접근하여 값을 읽어온다. ..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- form
- Angular
- Many-To-Many
- login
- 설정
- XML
- Spring Security
- 매핑
- spring boot
- 하이버네이트
- 로그인
- MYSQL
- 상속
- jsp
- one-to-one
- RestTemplate
- WebMvc
- Spring
- 스프링부트
- 스프링
- 외부파일
- mapping
- Rest
- one-to-many
- Validation
- hibernate
- 설정하기
- 자바
- Security
- crud