Java/Spring Boot
-
두개의 어노테이션은 Spring 컨테이너가 Spring 컨테이너에 등록되어 있는 Bean 객체를 찾아 자동으로 의존성을 주입해준다. @Autowired Bean 객체 찾는 순서 타입 > 이름 > @Qualifier > 실패 @Autowired 는 주입하려고 하는 객체의 타입을 확인해 컨테이너에서 Bean 객체를 찾는다. 만약 타입이 존재하지 않으면 @Autowired 에 설정된 이름으로 Bean 객체를 찾고 이름이 없을 경우 @Qualfier 어노테이션 유무를 찾아 주입한다. 없을 경우 예외가 발생한다. 생성자, 필드, 메서드 모두 적용 가능하다. Spring Boot 가 아닌 Spring 프레임워크일 경우 xml 설정 파일에 구문을 넣어준다. @Service public class UserDetails..
@Autowired 와 @Resource 차이점두개의 어노테이션은 Spring 컨테이너가 Spring 컨테이너에 등록되어 있는 Bean 객체를 찾아 자동으로 의존성을 주입해준다. @Autowired Bean 객체 찾는 순서 타입 > 이름 > @Qualifier > 실패 @Autowired 는 주입하려고 하는 객체의 타입을 확인해 컨테이너에서 Bean 객체를 찾는다. 만약 타입이 존재하지 않으면 @Autowired 에 설정된 이름으로 Bean 객체를 찾고 이름이 없을 경우 @Qualfier 어노테이션 유무를 찾아 주입한다. 없을 경우 예외가 발생한다. 생성자, 필드, 메서드 모두 적용 가능하다. Spring Boot 가 아닌 Spring 프레임워크일 경우 xml 설정 파일에 구문을 넣어준다. @Service public class UserDetails..
2024.01.31 -
개발환경 : Spring Boot 3.2.1, JDK17 1. Spring Boot Project 생성 New > Other > Spring Boot > Spring Starter Project 를 통해 프로젝트를 생성한다. 2. Node.js 설치 및 vue cli 설치 https://nodejs.org/ko/download/ Node.js 홈페이지에서 Windows Installer 를 통해 다운받는다. 설치한 후 시작프로그램에서 Node를 검색하면 이러한 커맨드가 나오는데 실행한다. 실행한 후 커맨드 창에 아래와 같은 키워드로 Vue Cli 를 설치해준다. " npm install -g @vue-cli " * vue-cli란 vue-cli는 기본 vue 개발 환경을 설정해주는 도구입니다. vue-..
Spring Boot 에 Vue.js 사용 및 Vue.js 프로젝트 기본구조개발환경 : Spring Boot 3.2.1, JDK17 1. Spring Boot Project 생성 New > Other > Spring Boot > Spring Starter Project 를 통해 프로젝트를 생성한다. 2. Node.js 설치 및 vue cli 설치 https://nodejs.org/ko/download/ Node.js 홈페이지에서 Windows Installer 를 통해 다운받는다. 설치한 후 시작프로그램에서 Node를 검색하면 이러한 커맨드가 나오는데 실행한다. 실행한 후 커맨드 창에 아래와 같은 키워드로 Vue Cli 를 설치해준다. " npm install -g @vue-cli " * vue-cli란 vue-cli는 기본 vue 개발 환경을 설정해주는 도구입니다. vue-..
2024.01.03 -
Spring Boot 에서 Context path 를 설정하지 않으면 기본적으로 '' 빈값으로 설정되어 http://localhost:8080/ 로 접근할 수 있다. Controller 를 통해 RequestMapping 을 "/test" 로 설정하게 되면 http://localhost:8080/test 로 접근할 수 있다. Spring Boot 에서는 application.properties 또는 application.yml 을 통해 context path 를 설정하도록 권장하고 있다. 1. application.yml 을 통해 Context Path 설정하기 본인은 .yml 을 통해 설정한다. (application.properties 와는 비슷하기 때문에 참고 바랍니다.) 설정하는 방법 server..
Spring Boot Context Path 설정하는 방법Spring Boot 에서 Context path 를 설정하지 않으면 기본적으로 '' 빈값으로 설정되어 http://localhost:8080/ 로 접근할 수 있다. Controller 를 통해 RequestMapping 을 "/test" 로 설정하게 되면 http://localhost:8080/test 로 접근할 수 있다. Spring Boot 에서는 application.properties 또는 application.yml 을 통해 context path 를 설정하도록 권장하고 있다. 1. application.yml 을 통해 Context Path 설정하기 본인은 .yml 을 통해 설정한다. (application.properties 와는 비슷하기 때문에 참고 바랍니다.) 설정하는 방법 server..
2023.11.23 -
기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
Spring Boot 2.7 이상, Spring Security 5.6 이상버전 설정하기기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
2023.07.11 -
개발환경 : Spring Boot, Thymeleaf, javascript, html ajax 를 이용해 csv 파일 다운로드를 구현하는 과정에서 데이터가 많아질수록 느려지고 실패하는 경우도 있었다. 이러한 이유는 csv 데이터는 String 형태로 "," 콤마로 구분해 데이터를 만들어 넘기는데 반복문이 많아질수록 서버가 죽을 위험이 있다. 그래서 더 좋은 방법을 구현하는 과정에서 Html 파일을 사용하여 다운받는 방법을 사용했다. Html 위와 같이 Controller 에서 받아 처리할 데이터를 Form 태그를 통해 Submit 을 한다. 넘길 파라미터가 존재하지 않을 경우 Form 태그만 사용하여 action 으로 던져도 가능하다. Javascript ... $("#downloadForm").subm..
html 을 이용한 대용량 파일 다운로드개발환경 : Spring Boot, Thymeleaf, javascript, html ajax 를 이용해 csv 파일 다운로드를 구현하는 과정에서 데이터가 많아질수록 느려지고 실패하는 경우도 있었다. 이러한 이유는 csv 데이터는 String 형태로 "," 콤마로 구분해 데이터를 만들어 넘기는데 반복문이 많아질수록 서버가 죽을 위험이 있다. 그래서 더 좋은 방법을 구현하는 과정에서 Html 파일을 사용하여 다운받는 방법을 사용했다. Html 위와 같이 Controller 에서 받아 처리할 데이터를 Form 태그를 통해 Submit 을 한다. 넘길 파라미터가 존재하지 않을 경우 Form 태그만 사용하여 action 으로 던져도 가능하다. Javascript ... $("#downloadForm").subm..
2023.07.03 -
@RequestBody HTTP 요청으로 넘어오는 Body 의 내용을 HttpMessageConverter 를 통해 Java Object로 역직렬화한다. 바이너리 파일을 포함하고 있지 않은 데이터를 받는 역할을 한다. * HttpMessageConverter : HTTP 요청과 응답에 대해서 "전략 패턴"을 사용해 Converting 해주는 역할 @RequestBody 어노테이션은 HTTP 요청으로 같이 넘어오는 Header 의 Content-Type을 보고 어떤 Converter 를 사용할지 정하므로 Content-Type 은 반드시 명시해야한다. 자주쓰는 Content-Type 종류 application/json : { key : value } 형태인 json 형태로 전송 application/x-w..
@RequestBody, @RequestParam, @RequestPart@RequestBody HTTP 요청으로 넘어오는 Body 의 내용을 HttpMessageConverter 를 통해 Java Object로 역직렬화한다. 바이너리 파일을 포함하고 있지 않은 데이터를 받는 역할을 한다. * HttpMessageConverter : HTTP 요청과 응답에 대해서 "전략 패턴"을 사용해 Converting 해주는 역할 @RequestBody 어노테이션은 HTTP 요청으로 같이 넘어오는 Header 의 Content-Type을 보고 어떤 Converter 를 사용할지 정하므로 Content-Type 은 반드시 명시해야한다. 자주쓰는 Content-Type 종류 application/json : { key : value } 형태인 json 형태로 전송 application/x-w..
2023.05.15