반응형

applicationContext.xml 파일에서 아래와 같이 작성합니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-4.3.xsd">


	<context:property-placeholder location="file:///C:\...파일경로\propertiesFileName.properties" />
	<bean id="prop" class="com.was.ios.common.util.Properties">
		<property name="uploadBasePath" value="${props.uploadBasePath}"/>
		<property name="uploadTempPath" value="${props.uploadTempPath}"/>	
	</bean>
</beans>

 

<context:property-placeholder location="file:///C:\...파일경로\propertiesFileName.properties" />

위 코드의 역할은 해당 위치에 있는 파일을 읽은 후 <bean id="" class="">에 명시된 class파일에 setter를 이용하여 properties의 데이터를 넣어줍니다.

반응형
반응형

Spring MVC 프로젝트 생성 후에 SampleController 클래스를 만들었다.


클래스 선언부에 @Controller@RequestMapping을 선언해주었는데..

1
2
3
4
5
6
7
8
9
10
11
package org.zerock.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
@RequestMapping("/sample/*")
public class SampleController {
 
}
 
cs


@Controller는 SampleController가 Controller임을 알려주는 어노테이션이다.


@RequestMapping은 현재 클래스의 모든 메서드의 기본적인 URL 경로가 된다.

예를들어, SampleController 클래스를 다음과 같이 '/sample/*'이라는 경로를 지정했다면 다음과 같은 URL은 모두 SampleController에서 처리된다.

@RequestMapping 어노테이션은 클래스의 선언과 메서드 선언에 사용할 수 있다.


@RequestMapping 몇 가지 속성을 추가할 수 있다.

바로 method속성인데, GET방식 POST방식을 구분해서 사용할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package org.zerock.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
import lombok.extern.log4j.Log4j;
 
@Controller // SampleController가 Controller인 것을 알려주는 어노테이션
@RequestMapping("/sampel/*")
@Log4j
public class SampleController {
    @RequestMapping(value="", method=RequestMethod.GET) //반드시 GET방식 일 때만 사용가능한 메서드
    public void basic() {
        log.info("basic......................");
    }
}
 
cs

@RequestMapping 어노테이션에서 method를 보면 GET이라고 적혀있는것을 확인할 수 있다.

이는 넘어오는 데이터가 반드시 GET방식일 때만 사용가능하다. 마찬가지로 GET대신에 POST사용 가능

만약 POST방식으로 데이터를 넘겨줬는데 method값이 GET일 경우 405에러 페이지가 나타난다.


반응형
반응형

● Lombok

1
2
3
4
5
6
7
8
9
10
11
12
        <!-- Lombok -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.0</version>
            <scope>provided</scope>
        </dependency>
cs



● Mybatis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- MyBatis Library -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        
        <dependency>
            <groupId>org.bgee.log4jdbc-log4j2</groupId>
            <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
            <version>1.16</version>
        </dependency>
cs



● spring 관련 library

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- spring 관련 library -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>      
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>      
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
cs



● HikariCP

1
2
3
4
5
6
<!-- HikariCP library -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>2.7.8</version>
        </dependency>
cs




[ 실습하면서 글 작성중이므로 변경사항이 있을 때마다 수정하겠습니다. ]

반응형
반응형


출처 : [ 이 글은

코드로 배우는 스프링 웹 프로젝트 

http://wonwoo.ml/index.php/post/1607

http://www.daleseo.com/lombok-popular-annotations

에서 참고하여 작성된 글입니다. ]


[ 코드로 배우는 스프링 웹 프로젝트 ]

이 책을 통해 Lombok에 대해서 알게되었다

 

Lombok을 이용하면 Java 개발 시 자주 사용하는 getter/setter, toString(), constructor 등을 자동으로 생성해 주므로 약간의 코드만으로도 필요한 클래스를 설계할 때 유용하다Lombok은 라이브러리에서 제공하는 어노테이션으로 코드에 적용할 수 있다.


먼저 Lombok 라이브러리 설치 방법부터 알아보자.

Lombok 다운로드는 http://projectlombok.org/download 에서 jar 파일 형태로 다운 받을 수 있다.


2018년 10월 현재 Lombok버전은 1.18.2 버전을 다운로드 할 수 있다.

다운받은 파일을 실행 시키면..


Lombok 설치 프로그램이 실행된다. default로 eclipse 경로가 잡혀있는데 STS에 설치하고 싶은 경우 Specify location... 을 클릭해서 STS가 설치되어있는 경로를 잡아주면 된다.


STS경로를 잡아주고 Install / Update 클릭Quit Installer 클릭

만일 Lombock을 설치한 후 바탕화면의 이클립스(STS) 바로가기가 정상적으로 동작하지 않는다면..

1. 이클립스가 설치된 경로에서 제대로 실행되는지 확인

2. 바탕화면의 바로가기 삭제 후 다시 생성

위의 과정을 수행한다면 문제없이 실행될 것이다.



그럼 Lombok 어노테이션에 대해서 하나씩 알아보자.


@Getter / @Setter

이름 그대로 getter와 setter를 생성해준다. 가장 많이 사용되는 어노테이션 중 하나이다.

1
2
@Getter @Setter
private String name;
cs

이처럼 필드에 어노테이션을 붙여주면, getter와 setter를 자동으로 생성해준다. 속성으로 value, onMethod 속성이 존재한다.

value의 경우 AccessLevel(접근제어) 지정을 통해서 접근 레벨을 제한할 수 있다.(PUBLIC, PROTECTED, PACKAGE, PRIVATE)

@Getter(value = AccessLevel.PRIVATE), @Setter(value = AccessLevel,PUBLIC)



@XXXArgsConstructor

생성자를 생성해주는 어노테이션이다. 3가지 종류가 있는데..

1. @NoArgsConstructor : 디폴트 생성자(파라미터가 없는 생성자)를 생성해주는 어노테이션

2. @AllArgsConstructor : 모든 필드의 생성자(파라미터로 받는)를 생성해주는 어노테이션

3. @RequiredArgsConstructor : 필수 생성자를 생성해주는 어노테이션



@EqualsAndHashCode

@EqualsAndHashCode 어노테이션은 hashcode와 equals를 생성해주는 어노테이션이다.

공통 속성으로 exclude, of, callSuper, doNotUseGetters가 존재한다.


@ToString

@ToString 어노테이션은 toString() 메서드를 생성해주는 어노테이션이다.

@EqualsAndHashCode와 마찬가지로 공통 속성으로 excludeofcallSuperdoNotUseGetters가 존재한다.


@EqualsAndHashCode / @ToString 공통 속성

▶ exclude : 제외시킬 변수명을 작성 → @EqualsAndHashCode(exclude={"field1", "field2"})

▶ of : 포함시킬 변수명을 작성 → @EqualsAndHashCode(of = "id")

▶ callSuper : 상위 클래스의 호출 여부를 묻는 속성 → @EqualsAndHashCode(callSuper = true)

▶ doNotUseGetters : getter 사용여부 확인(..?)


@Data

@Data@Getter, @Setter, @XXXArgsConstructor, @ToString, @EqualsAndHashCode 을 한꺼번에 설정해주는 어노테이션이다.

1
2
3
4
@Data
public class Test{
 
}
cs

클래스 레벨에 @Data어노테이션을 붙여주면 모든 필드를 대상으로 접근자와 설정자가 자동으로 생성된다.

final로 지정됐거나, @NonMull로 명시된 필드에 대한 값을 받는 생성자 메소드 코드를 생성한다.



[ 실습하면서 글 작성중이므로 변경사항이 있을 때마다 수정하겠습니다. ]

반응형
반응형


Spring Project 생성 후 환경설정을 어떻게 무엇을 해야하는지 알아보자.

본 글은 STS에서 실행한 글입니다.


1. Spring Legacy Project 생성 

Project이름 적어주고 Spring MVC Project 선택

그리고 Next> 클릭


package 적어주자.

※ 반드시을 기준으로 세단어 이상 적어주어야한다.

→ 마지막에 오는 단어가 context명이된다.

그리고 Finish 클릭


Finish를 하고나면 STS(이클립스) 오른쪽 하단에 보면 

빌드가 진행되면서 프로젝트가 생성된다.


2. pom.xml에서 버전 맞추기

생성한 프로젝트를 열어보면 밑에..

pom.xml을 열어보면 태그로 가득히 무엇인가 쭈욱 뜨는데 그 중...

이부분!

<java-version>사용하고 있는 jdk 버전</java-version> 


jdk버전 수정 후 해야할 일은..

프로젝트 우클릭 → properties 클릭

왼쪽 상단에 build를 치면 Java Build Path가 나오는데 클릭!



JRE System Library를 pom.xml에서 설정한 버전과 맞춰주자.

JRE System Library 클릭 후 Edit 클릭

Workspace default JRE로 default 설정 값으로 맞추거나

Execution environment에서 맞는 버전을 직접 선택한 후 Finish클릭


Apply and Close 클릭!


다시 pom.xml로 돌아와서..

▶ <org.springframework-version>..</org.springframework-version>

springframework를 사용할 버전에 맞춰주자.

필자는 5.0.7로 수정해주겠다.


그리고 junit 버전 수정을 해줄것인데.. 그전에 junit 라이브러리 추가부터 알아보자.

다시한번.. 

프로젝트 우클릭 → properties 클릭 → Java Build Path 클릭!

Add Library 클릭!

Junit 클릭 Next>

Junit4 선택해주고 Finish 클릭!

Junit4 추가된 것을 확인하고 Apply and Close 클릭!

Package Explorer에 JUnit4 추가되었다.

그리고 나서 pom.xml에 있는 junit버전을 변경해보자.

스프링 4.x 이상의 버전을 테스트 하기 위해서는 반드시 junit의 버전은 4.10 이상을 이용해야만 한다.

(해당없으면 그냥 넘어가도 됩니다.) 

pom.xml을 내리다 보면 <dependency> 부분에

junit이 보일것이다.

현재 4.7로 되어있지만 4.10이상으로 올려주자.

필자는 4.12로 변경하겠다.


[ 실습하면서 글 작성중이므로 변경사항이 있을 때마다 수정하겠습니다. ]

반응형
반응형

스프링은 환경설정하는게 너무 어렵다...


test폴더 class에서..

1
2
3
4
@RunWith(SpringJUnit4ClassRunner.class)
public class test{
 
}
cs


@RunWith(SpringJUnit4ClassRunner.class)


여기에서 에러가 났을 경우


pom.xml에서 


1
2
3
4
5
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.1.1.RELEASE</version>
</dependency>
cs

를 추가해주자.



반응형

+ Recent posts