반응형

Java/Spring 11

[Spring] Spring MVC Interceptor

1. Spring MVC Interceptor란?- 핸들러(Handler) 호출 시점에 따라 요청을 처리하는 필터(로그인, 권한 등에 사용) 2. Spring MVC Hanler 동작 이해하기- HandlerMapping의 목적은 URL핸들러 메소드와 URL을 연결시키는데에 있다. 즉, DispatcherServlet은 처리를 반환할 때 해당 메소드를 잘생시킬 수 있어야 합니다.- DispatcherServlet은 메소드를 발생시키기 위해 HandlerAdapter를 사용한다. 한마디로 인터셉터는 반환을 가로채서 처리하며 로그나 권한 체크와 같은 반복적인 핸들러 코드를 피하는 것에 도움을 줍니다. 3. Maven Dependencies- 인터셉터를 사용하기 위해선 pom.xml에 spring-web 의존..

Java/Spring 2024.06.24

스케줄링 사용법, 크론(cron) 표현식

@Scheduled java Spring 환경에서 @Scheduled 어노테이션을 사용하여 메소드의 실행 시간/주기를 설정할 수 있다. 설정 표현식으로 cron, fixedDealy, fixedRate 등을 사용할 수 있다. (Spring 3.1 이상부터 지원) Cron 표현식 @Scheduled(cron = "* 30 12 * * *") 좌측부터 "초 분 시 일 월 년"을 나타내며 위의 식은 매 12시 30분을 의미한다. 순서 필드 값 1 seconds(초) 0 ~ 59, -, *, / 2 minutes(분) 0 ~ 59, -, *, / 3 hours(시) 0 ~ 23, -, *, / 4 day of month(일) 1 ~ 31, -, *, /, ?, L, W 5 month(월) 1 ~ 12, -, *..

Java/Spring 2022.06.21

Spring Legacy Project part 3. (Controller의 Parameter 전달)

HomeController에 파라미터를 넘기기 위한 메서드 들을 작성해보겠습니다. String @GetMapping("/name") public void getName(String name) { log.info(name); } http://localhost:8000/myapp01/name?name=kim URL 창에 다음과 같이 '?' 뒤에 변수명과 값을 넣어줍니다. 그리고 콘솔 창을 확인해보면 'kim'이라고 잘 넘어온 것을 확인할 수 있습니다. Integer @GetMapping("/age") public void getAge(int age) { log.info(age); } http://localhost:8000/myapp01/age?age=26 Integer도 마찬가지입니다. Arrays @Get..

Java/Spring 2021.02.28

Spring Legacy Project part 2. (JUnit Test)

스프링 프레임워크가 시작되면 스프링이 사용하는 메모리 영역을 만들게 되고 이것을 컨텍스트(Context)라고 합니다. 스프링은 자신이 객체를 생성하고 관리해야 하는 객체들에 대한 설정을 root-context.xml파일에서 합니다. root-context.xml에 설정되어 있는 태그의 내용을 통해서 org.zerock.ample 패키지를 스캔합니다. 해당 패키지에 있는 클래스들 중 스프링이 사용하는 @Component 라는 어노테이션이 존재하는 클래스의 인스턴스를 생성합니다. Test 해당 위치에서 진행합니다. 테스트를 진행할 패키지와 파일을 생성합니다. package org.zerock.sample; import static org.junit.Assert.assertNotNull; import org...

Java/Spring 2021.02.26

Spring Legacy Project part 1. (Lombok, DI)

스프링 프로젝트를 진행하기 앞서 스프링의 주요 특징을 알아봅시다. 스프링의 주요 특징 POJO(Plain Old Java Object) 기반의 구성 - 자바의 언어 사양 외에 어떠한 제한에 묶이지 않은 자바 오브젝트 - 기술적으로 어렵기 때문에 미리 정의된 어노테이션을 보통 사용 의존성 주입(DI)을 통한 객체 간의 관계 구성 - 하나의 객체가 다른 객체의 의존성을 제공하는 기술 - 밖에서 생성하여 넣어주는 것 AOP(Aspect Oriented-Programming) 지원 - 로깅이나 인증 시스템과 같은 횡단 관심사와 분리하여 모듈성을 증가시키는 프로그래밍 패러다임 MVC(Model-View-Controller) 구조 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴 Lombok getter/sett..

Java/Spring 2021.02.24

Spring Legacy 개발환경 part 2.

Spring Legacy 개발환경 part 1.에서 기본적인 설정을 하고 프로젝트를 생성했습니다. 다음과 같은 구조의 프로젝트가 생성되었습니다.각각 어떤 역할을 하는지 알아봅시다. 메인 코드가 작성되는 부분입니다.대표적으로 Controll, Dto, Dao 그리고 Service나 Command 등의 패키지 및 파일이 들어갑니다. resource 즉, 자원이 들어간다는 의미입니다. 실행 시 필요한 파일들이 들어갑니다. (css, img 등) 프로그램을 테스트 하기 위한 자바 코드나 자원들이 들어갑니다. main > webapp > WEB-INF > spring > appServlet 에 있는 웹 관련 스프링 설정 파일입니다.*beans 등록과 mapping을 설정하기 위한 파일입니다. main > weba..

Java/Spring 2021.02.24

Spring Filter 적용하기

저번에 Spring과 톰캣을 연동하여 실행시켰습니다. 하지만 다음과 같이 한글이 '?'로 출력된는 것을 볼 수 있습니다. 이것을 바꾸기 위해 Filter를 적용시켜 보겠습니다. 'web.xml'에 Filter 코드를 추가해줍니다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* 안에 넣어주어야 합니다. 한글도 잘 출력되는 것을 볼 수 있습니다.

Java/Spring 2021.02.22

Spring Framework Tomcat 연동

생성한 프로젝트와 연동할 서버인 톰캣을 다운로드합니다.(tomcat.apache.org/download-90.cgi) 저는 9버전으로 다운로드하였습니다. 윈도우 자동 설치용 인스톨러를 받았습니다. 설치 과정에서 컴포넌트를 설정합니다. 어떤 기능을 하는지는 모르겠으니 받아서 사용해보겠습니다(할 수 있으면요 ㅎㅎ;;) 포트 설정이 나옵니다. 그대로 진행하겠습니다. 톰캣을 설치했으면 서버를 설정합니다. window > show view > server을 선택하고 server가 없으면 Other을 선택합니다. Server > Servers를 선택합니다. 아래에 서버 콘솔이 떴습니다. 서버를 새로 만들기 위해 클릭하겠습니다. Apache에서 톰캣 버전을 선택하겠습니다. 저는 9버전을 깔았기 때문에 9를 선택하겠습..

Java/Spring 2021.01.22

Spring Legacy 개발 환경 part 1.

얼마전에 취업 정보를 확인하러 사람인에 들어갔는데 대부분의 채용 공고에서 spring framework를 원하더군요 ;; 그래서 오늘부터 spring framework 활용 능력을 향상시키기 위한 공부를 시작하려고 합니다. 우선 jdk를 설치해줍니다. (www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) Oracle 아이디가 있어야 다운로드 받을 수 있습니다. Spring을 사용하기에 앞서 여러 개발 툴 중에서 저는 STS(Spring Tool Suite)를 사용하려고 합니다. STS를 다운받기 위해 Spring 홈페이지에 접속하여 다운로드합니다.(spring.io/tools) jar 파일을 다운받았으면 '알집으로 압..

Java/Spring 2021.01.18
반응형