Spring Core
-
이번 포스트에서는 레거시 스프링 프로젝트를 구성하는 절차를 살펴보자.이 페이지의 내용은 스프링 부트 애플리케이션의 구성을 연습하기 위한 것으로 비지니스 로직 처리는 적절치 않습니다. 기본 프로젝트 구성 maven project 구성아키타입을 생략한 새로운 Maven Project를 생성한다.group id(소속사 domain), artifact id(project 이름)을 기입하고 web 서비스를 위해 packaging을 war로 설정한다. pom.xml에 JDK 설정 및 필요한 의존성 설정다음과 같이 pom.xml 파일을 수정해서 JDK와 필요한 의존성을 설정한다. 4.0.0 com.doding legacyproj 0.0.1-SNAPSHOT war 17 6.1.13 org.spri..
레거시 스프링 프로젝트 작성 절차이번 포스트에서는 레거시 스프링 프로젝트를 구성하는 절차를 살펴보자.이 페이지의 내용은 스프링 부트 애플리케이션의 구성을 연습하기 위한 것으로 비지니스 로직 처리는 적절치 않습니다. 기본 프로젝트 구성 maven project 구성아키타입을 생략한 새로운 Maven Project를 생성한다.group id(소속사 domain), artifact id(project 이름)을 기입하고 web 서비스를 위해 packaging을 war로 설정한다. pom.xml에 JDK 설정 및 필요한 의존성 설정다음과 같이 pom.xml 파일을 수정해서 JDK와 필요한 의존성을 설정한다. 4.0.0 com.doding legacyproj 0.0.1-SNAPSHOT war 17 6.1.13 org.spri..
2024.10.25 -
스프링 부트에서는 application의 환경 설정을 위해서 src/main/resources 아래에 application.properties 또는 application.yml 파일을 사용할 수 있다. 이 둘은 동일한 내용을 약간 다른 방법으로 작성하는데 properties는 간단하지만 장황하고 yml은 상대적으로 복잡하지만 효율적이다. .properties 작성 방법 key=value의 맵 구조properties 파일은 key=value의 구조로 설정들을 작성한다. 여기서 많이 하는 실수 중 하나가 가독성을 높인다는 이유로 = 주변에 공백을 넣는 것이다. 그러면 공백까지 key 또는 value의 일부가 되버린다. !key는 'key' 속성의 값을 'value'이다.key=value!key는 'key '..
04. application 설정 파일 작성스프링 부트에서는 application의 환경 설정을 위해서 src/main/resources 아래에 application.properties 또는 application.yml 파일을 사용할 수 있다. 이 둘은 동일한 내용을 약간 다른 방법으로 작성하는데 properties는 간단하지만 장황하고 yml은 상대적으로 복잡하지만 효율적이다. .properties 작성 방법 key=value의 맵 구조properties 파일은 key=value의 구조로 설정들을 작성한다. 여기서 많이 하는 실수 중 하나가 가독성을 높인다는 이유로 = 주변에 공백을 넣는 것이다. 그러면 공백까지 key 또는 value의 일부가 되버린다. !key는 'key' 속성의 값을 'value'이다.key=value!key는 'key '..
2024.03.11 -
이번 포스트에서는 Spring이 관리하는 빈의 생명주기(Life Cycle)에 대해 살펴보자.빈의 생명 주기 빈의 생명 주기스프링의 빈은 다음과 같은 생명 주기를 갖는다.생성자를 호출하여 객체를 생성한다.1의 과정을 통해 생성자 주입을 하거나 별도의 setter 메서드를 이용해서 의존성을 주입한다.아직 빈을 활용하기 이전에 초기화 메서드를 실행한다. 초기화 메서드에서는 빈에서 사용하려는 자원을 초기화 할 수 있다.빈을 사용한다.빈을 다 사용한 후 소멸 메서드를 실행한다. 소멸 메서드에서는 빈에서 사용했던 자원의 정리 작업을 진행할 수 있다. 초기화 및 소멸 메서드초기화 메서드와 소멸 메서드에 대해 살펴보자. 초기화 메서드소멸 메서드주요 용도빈에서 사용하려는 자원의 초기화빈에서 사용한 자원의 정리호출 시점..
07. 빈의 생명주기이번 포스트에서는 Spring이 관리하는 빈의 생명주기(Life Cycle)에 대해 살펴보자.빈의 생명 주기 빈의 생명 주기스프링의 빈은 다음과 같은 생명 주기를 갖는다.생성자를 호출하여 객체를 생성한다.1의 과정을 통해 생성자 주입을 하거나 별도의 setter 메서드를 이용해서 의존성을 주입한다.아직 빈을 활용하기 이전에 초기화 메서드를 실행한다. 초기화 메서드에서는 빈에서 사용하려는 자원을 초기화 할 수 있다.빈을 사용한다.빈을 다 사용한 후 소멸 메서드를 실행한다. 소멸 메서드에서는 빈에서 사용했던 자원의 정리 작업을 진행할 수 있다. 초기화 및 소멸 메서드초기화 메서드와 소멸 메서드에 대해 살펴보자. 초기화 메서드소멸 메서드주요 용도빈에서 사용하려는 자원의 초기화빈에서 사용한 자원의 정리호출 시점..
2024.02.23 -
이번 포스트에서는 빈의 스코프에 대해 살펴보자.빈의 스코프(Scope) CoffeeShop 시스템새롭게 하나의 CoffeeShop을 개업한다고 생각해보자. CoffeeShop에는 Barista가 근무할텐데 이 Barista는 손이 엄청 빠르기 때문에 아무리 많은 주문이 들어와도 순식간에 처리할 수 있다. 즉 맛있게 커피를 만들 수 있는 단 한 명만 필요하다. 그리고 CoffeeShop은 인기가 많아서 엄청나게 많은 Coffee가 팔리고 있다.일단 이 일과 관련된 3개의 클래스를 작성해보자.@Data@AllArgsConstructorpublic class Coffee { // Coffee는 stateful 하다. private String client; private String menu..
06. 빈의 스코프이번 포스트에서는 빈의 스코프에 대해 살펴보자.빈의 스코프(Scope) CoffeeShop 시스템새롭게 하나의 CoffeeShop을 개업한다고 생각해보자. CoffeeShop에는 Barista가 근무할텐데 이 Barista는 손이 엄청 빠르기 때문에 아무리 많은 주문이 들어와도 순식간에 처리할 수 있다. 즉 맛있게 커피를 만들 수 있는 단 한 명만 필요하다. 그리고 CoffeeShop은 인기가 많아서 엄청나게 많은 Coffee가 팔리고 있다.일단 이 일과 관련된 3개의 클래스를 작성해보자.@Data@AllArgsConstructorpublic class Coffee { // Coffee는 stateful 하다. private String client; private String menu..
2024.02.22 -
이번 포스트에서는 SpringBoot를 위한 4가지 알쓸신잡(알아두면 쓸모있는 신기하고 잡스런 기술들)에 대해 살펴보자.SpringBoot는 어쩌면 자바에서는 종합예술이기 때문에 사전에 얕게라도 알아야 할 지식들이 많다. 대표적인 것들이 maven과 같은 빌드 시스템, logging framework 활용, lombok 활용, junit을 이용한 단위 테스트가 있다. 아직 이 기술들에 대한 지식이 없다면 간단히 살펴보고 오는 것이 좋겠다. SpringBoot를 위한 알쓸신잡 Mavenhttps://goodteacher.tistory.com/483 [maven] maven 활용 메뉴얼 1이번 포스트에서는 maven을 이용한 프로젝트 관리에 대해서 살펴본다. Maven이란? Maven은 아파치 재단에서 ..
03. SpringBoot를 위한 알쓸신잡이번 포스트에서는 SpringBoot를 위한 4가지 알쓸신잡(알아두면 쓸모있는 신기하고 잡스런 기술들)에 대해 살펴보자.SpringBoot는 어쩌면 자바에서는 종합예술이기 때문에 사전에 얕게라도 알아야 할 지식들이 많다. 대표적인 것들이 maven과 같은 빌드 시스템, logging framework 활용, lombok 활용, junit을 이용한 단위 테스트가 있다. 아직 이 기술들에 대한 지식이 없다면 간단히 살펴보고 오는 것이 좋겠다. SpringBoot를 위한 알쓸신잡 Mavenhttps://goodteacher.tistory.com/483 [maven] maven 활용 메뉴얼 1이번 포스트에서는 maven을 이용한 프로젝트 관리에 대해서 살펴본다. Maven이란? Maven은 아파치 재단에서 ..
2023.11.21 -
이번 포스트에서는 Spring Legacy Project를 SpringBoot로 변경하는 과정을 살펴보자. 기본 설정 빈 스켄과 자동 설정 SpringBoot를 하면서 처음 살펴볼 녀석은 당연히 main 메서드가 작성된 @SpringBootApplication이다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(ty..
Spring Legacy To SpringBoot이번 포스트에서는 Spring Legacy Project를 SpringBoot로 변경하는 과정을 살펴보자. 기본 설정 빈 스켄과 자동 설정 SpringBoot를 하면서 처음 살펴볼 녀석은 당연히 main 메서드가 작성된 @SpringBootApplication이다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(ty..
2023.10.30 -
평소에 궁금했었는데 찾아보지 못한 내용이 있었는데 바로 Legacy Spring에서 DispatcherServlet의 url mapping이 왜 "/*"가 아니라 "/"일까이다. DispatcherServlet의 urlmapping url mapping 방식 전통적으로 web.xml의 URL mapping에서 wildcard은 크게 3가지 형태로 사용된다. 형태 의미 /* 경로 기반의 매핑 ex) /abc/* -> /abc/ 아래의 모든 요청, : /abc/def, /abc , /abc.do 등 사용 가능 *.ext 확장자 기반 매핑으로 경로에 상관 없이 확장자가 같은 모든 요청 ex)*.do -> 확장자가 do인 모든 요청: /abc.do, /abc/def/ghi.do / 어떤 URL 매핑에도 연결되지..
[spring] DispatcherServlet의 url은 왜 "/*"가 아니고 "/" 일까?평소에 궁금했었는데 찾아보지 못한 내용이 있었는데 바로 Legacy Spring에서 DispatcherServlet의 url mapping이 왜 "/*"가 아니라 "/"일까이다. DispatcherServlet의 urlmapping url mapping 방식 전통적으로 web.xml의 URL mapping에서 wildcard은 크게 3가지 형태로 사용된다. 형태 의미 /* 경로 기반의 매핑 ex) /abc/* -> /abc/ 아래의 모든 요청, : /abc/def, /abc , /abc.do 등 사용 가능 *.ext 확장자 기반 매핑으로 경로에 상관 없이 확장자가 같은 모든 요청 ex)*.do -> 확장자가 do인 모든 요청: /abc.do, /abc/def/ghi.do / 어떤 URL 매핑에도 연결되지..
2023.04.19 -
Spring을 이용해서 샘플 프로젝트를 만들 때 매번 DB를 초기화하는게 상당히 귀찮은데 이런 경우 초기화 스크립트를 이용하면 아주 쉽게 문제를 해결할 수 있다. schema.sql과 data.sql 초기화 파일 준비 먼저 두 개의 초기화 파일을 resoures/init_data 경로에 위치시키자. 첫번 째 초기화 파일은 db의 구조를 담당하는 schema 파일이다. drop table todo if exists ; create table todo( id number primary key auto_increment, content varchar(100) not null, done char(1) default 'F' ); 다음은 초기 데이터 파일을 설정하는 data.sql이다. insert into tod..
[spring]SQL script를 활용한 DB 초기화Spring을 이용해서 샘플 프로젝트를 만들 때 매번 DB를 초기화하는게 상당히 귀찮은데 이런 경우 초기화 스크립트를 이용하면 아주 쉽게 문제를 해결할 수 있다. schema.sql과 data.sql 초기화 파일 준비 먼저 두 개의 초기화 파일을 resoures/init_data 경로에 위치시키자. 첫번 째 초기화 파일은 db의 구조를 담당하는 schema 파일이다. drop table todo if exists ; create table todo( id number primary key auto_increment, content varchar(100) not null, done char(1) default 'F' ); 다음은 초기 데이터 파일을 설정하는 data.sql이다. insert into tod..
2022.12.03