달력

1

« 2020/1 »

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  


 

 

pom.xml 통해 Spring 프레임워크 설치하기

 

·         라이브러리 검색 하기

·         pom.xml 의존관계(dependency) 설정

·         Maven 프로젝트 업데이트

 

 

 

 

라이브러리 검색 하기

메이븐 중앙 저장소에서 필요한 라이브러리를 조회한 의존성에 추가해줍니다.

 

메이븐 중앙 저장소에 접속합니다.

http://mvnrepository.com/


 

 

 

"org.springframework" 원하는 라이브러리를 검색합니다.

org.springframework


 

https://mvnrepository.com/search?q=org.springframework


 

 

첫번째 항목인 "1. Spring Context" 클릭합니다.


 

 

 

정식출시전의 M버전과 RC버전은 Maven Central에서 배포되지 않고 다른 리포지토리에서 배포되는 것을 확인할 있습니다.

탭을 클릭해 다른 리포지토리의 라이브러리 버전도 확인할 있습니다.


 

 

Central 리포지토리에서 바로 직전 버전의 최신 RELEASE버전을 클릭합니다.


 

 

 

정보확인

https://mvnrepository.com/artifact/org.springframework/spring-context/5.0.13.RELEASE


 

 

 

Maven 탭의 박스를 클릭하여 dependency 태그를 복사합니다.


 

 

 

 

 

pom.xml 의존관계(dependency) 설정

 

<dependencies> 태그를 추가합니다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tistory.codedragon.HelloWorld</groupId>

  <artifactId>HelloWorld</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <build>

    <plugins>

      <plugin>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.8.0</version>

        <configuration>

          <source>1.8</source>

          <target>1.8</target>

        </configuration>

      </plugin>

      <plugin>

        <artifactId>maven-war-plugin</artifactId>

        <version>3.2.1</version>

      </plugin>

    </plugins>

  </build>

</project>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tistory.codedragon.HelloWorld</groupId>

  <artifactId>HelloWorld</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <build>

    <plugins>

      <plugin>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.8.0</version>

        <configuration>

          <source>1.8</source>

          <target>1.8</target>

        </configuration>

      </plugin>

      <plugin>

        <artifactId>maven-war-plugin</artifactId>

        <version>3.2.1</version>

      </plugin>

    </plugins>

  </build>

  <dependencies>

 

  </dependencies>

</project>

 

 

<dependencies> 태그안에 복사한 의존성 라이브러리 태그를 붙여넣기 합니다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tistory.codedragon.HelloWorld</groupId>

  <artifactId>HelloWorld</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <build>

    <plugins>

      <plugin>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.8.0</version>

        <configuration>

          <source>1.8</source>

          <target>1.8</target>

        </configuration>

      </plugin>

      <plugin>

        <artifactId>maven-war-plugin</artifactId>

        <version>3.2.1</version>

      </plugin>

    </plugins>

  </build>

  <dependencies>

          <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>5.0.13.RELEASE</version>

</dependency>

  </dependencies>

</project>

 

 

 

빌드가 이루어집니다.


 

 

 

 

 

 

Maven 프로젝트 업데이트

 

"Package Explorer"에서 생성한 프로젝트명 선택 >> 마우스 우클릭 >> [Maven] >> [Update Project..]

 


 

 

 

 

 

[OK]


 


 

 

 

"Spring Elements" 항목이 새로 생긴것을 확인할 있습니다.


 

 


Posted by codedragon codedragon

댓글을 달아 주세요

2019. 10. 1. 10:28

IoC 도식도 Development/Spring


 

 

IoC 도식도

·         프로젝트

·         IoC 아닌 경우 도식도

·         IoC 경우 도식도

 

 

 

 

 

프로젝트

objMC객체는 objA objB객체에 의존합니다.

objMC객체에서 필요한 objA objB객체 생성방법은 loC 아닌 경우와 loC 경우로 나눌 있습니다.

 


 

 

 

 

 

IoC 아닌 경우 도식도

개발자가 직접 new해서 객체를 생성하여 사용합니다.

objMC객체가 objA objB객체를 직접 생성합니다.


 

 

 

 

 

 

IoC 경우 도식도

IoC 제어권이 역전 되었으므로 Container 객체를 생성한 개발자 코드에 주입시켜주는 방식입니다.

objMC 직접 new하지 않고 objA objB객체를 외부에서 생성하여 objMC객체로 넣어줍니다.

외부에서 생성하는 방법으로 setter 이용하는 방법과 Constructor 이용하는 방법이 있습니다.


 

 

loC 이용한 것이 Spring Framework입니다.


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Spring Exception 특징

특징

설명

Controller 기반

·         부가기능을 제공하는 Advice클래스를 작성합니다

·         XML설정파일에 <aop:config>태그를 이용하여 Aspect 설정합니다. , 어드바이스와 포인트컷을 설정합니다.

Global Excpeiton Handler

·         예외처리는 cross-cutting concern, 애플리케이션 전체에 포인트컷이 적용되어야 합니다.

·         @ControllerAdvice 어노테이션을 포함한 클래스는 전역 예외처리 컨트롤러가 됩니다.

·         컨트롤러에서 캐치한 예외는 JSP같은 View 혹은 JSON으로 응답이 가능합니다.

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

JUnit Library 검색 설치

 

메이븐 저장소로 이동합니다.

http://mvnrepository.com/

 

 

"JUnit"으로 검색

JUnit

https://mvnrepository.com/search?q=jackson

 

 

 

첫번째 항목 선택


 

 

최신 RELEASE 버전번호 클릭

https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api


 

 

 

Maven항목의 dependency 정보 복사

https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.4.1


 

 

 

pom.xml 파일의 <dependencies> 태그안에 붙여넣기 하여 추가합니다.

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->

<dependency>

    <groupId>org.junit.jupiter</groupId>

    <artifactId>junit-jupiter-api</artifactId>

    <version>5.4.1</version>

    <scope>test</scope>

</dependency>

 

 

Project Explorer [Maven Dependencies]항목을 펼치면 라이브러리가 추가된 것을 확인할 있습니다.


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

Layered Architecture

·         계층화 아키텍처

·         효율적인 개발과 유지보수를 위해 계층화 형태로 구성하여 개발을 합니다.

·         대부분의 중규모(Mid-Range) 이상, 대규모 어플리케이션에서 적용합니다.

·         레이어는 독립된 R&R 가집니다.

 

 

 

 

 

 

Layered Architecture 영역

크게 3 영역으로 나뉘어 집니다.

 

영역

설명

프리젠테이션 영역

·         Presentation Layer

·         사용자와 상호작용을 담당합니다.

·         사용자의 요청을 분석하고 응답을 수행합니다.

비즈니스 영역

·         Business Layer

·         기능(function) 수행합니다.

·         트랜잭션(transaction) 수행합니다.

데이터 영역

·         Data Accesss Layer

·         데이터의 저장과 조회를 담당합니다.

·         주로 데이터베이스(DBMS) 연동하는 작업을 수행합니다.

 

 


 



Posted by codedragon codedragon

댓글을 달아 주세요



 

 

 

에러 메시지

GetMapping cannot be resolved to a type

RequestParam cannot be resolved to a type


 

 

 

 

 

 

 

 

해결방법

Controller관련 어노테이션(Annotation), Parameter 처리 어노테이션에서 발생하는 에러를 해결할 있습니다.

 

 

 

pox.xml 의존성 추가

pox.xml Spring 라이브러리가 추가되어져 있는지 확인한 추가하면 해결됩니다.

 

<dependencies>

 

      <!-- Spring 프레임워크 설치 -->

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.0.13.RELEASE</version>

</dependency>

<!-- Spring MVC 라이브러리 -->

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-webmvc</artifactId>

    <version>5.1.6.RELEASE</version>

</dependency>

</dependencies>

 

 

 

 

 

 

Mave Project Update

프로젝트 선택 >> 마우스 우클릭 >> [Mave] >> [Update Project…]

 

 

 

 

 

 

해결완료!!!


 



 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

Static Web Resource 처리

·         Server 처리가 필요 없는 static web resource 요청시 Server 거치지 않고 곧바로 응답이 필요한 곳에 사용합니다.

·         특정 URL 요청이 오면 static resource 인식하고 바로 응답을 수행합니다.

·         <mvc:resources>태그로 구현합니다.

 

 

 

servlet-context.xml

 <mvc:resources location="/WEB-INF/resources/" mapping="/resources/**"></mvc:resources>

 

 

location="/WEB-INF/resources/"

실제 응답할 파일이 있는 위치를 지정합니다.

mapping="/resources/**"

HTTP 요청 URL 지정합니다.

**

** /resources/안의 모든 내용을 의미합니다.

 

 

 

요청 URL -> 응답 URL

dispatcherServlet Front에서 요청을 받으면 처리할 Controller 넘기지 않고(Server 가지 않고)

해당 요청을 static resource 인식하여 요청시 바로 응답 URL 처리되게 됩니다.

요청 URL

http://localhost:8080/SpringBBS/resources/scripts/jQuery.js

응답 URL

/WEB-INF/resources/scripts/jQuery.js

 

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

"Spring Explorer" 오픈 하기

Spring Explorer뷰는 "Spring" 모드에 기본적으로 추가되어져 있습니다.

우측에 [Spring Explorer] 아이콘을 클릭하면 창이 오픈됩니다.


 

 


Posted by codedragon codedragon

댓글을 달아 주세요

2019. 7. 7. 01:30

@PathVariable Development/Spring



 

 

@PathVariable

·         @PathVariable 어노테이션을 이용하면 경로(path) 변수를 넣어주면 해당 변수를 요청메소드의 파라미터로 이용 있습니다.

·         HTTP 요청에 대한 요청 URL 파라미터(경로변수;구분자)형태로 사용할 있습니다.

·         요청시 마다 변하는 부분을 경로 변수로 처리할 있습니다.

·         REST API에서 값을 호출할 uri에서 구분자에 들어오는 값을 처리해야 주로 많이 사용합니다.

 

 

요청 URL

/bbs/{경로변수}

파라미터 처리

@PostMapping("/bbs/{경로변수}")

@PathVariable("경로변수") int 매개변수

 

@PostMapping("/bbs/{경로변수}")

@PathVariable int 매개변수(경로변수명과 동일)

 

 

 

// 경로에 변수를 넣어서 요청 처리

// 해당 변수는 요청 메소드의 파라미터로 이용되어 집니다.

@RequestMapping("/student/{studentId}")

public String getStudent(@PathVariable String studentId, Model model) {

// @PathVariable 어노테이션을 통해 경에 설정한 변수를 요청메소드의 파라미터로 사용하고 있습니다.

model.addAttribute("studentId", studentId);

return "student/studentView";

}

@RequestMapping("/student/{studentId}")

// 경로변수명의 값을 저장할 변수명이 경로변수명과 다를 경우 @PathVariable 경로 변수경을 꼭어준 원하는 변수명을 사용해 주면 됩니다.습니다.

public String getStudent(@PathVariable("index") String studentNumberId, Model model) {

 

model.addAttribute("studentId", studentNumberId);

return "student/studentView";

}

 

 

 

 

 

 

요청 URL

http://localhost:8080/bbs/13

파라미터 처리

@PostMapping("/bbs/{index}")

@PathVariable("index") int articleId

 

POST방식의 /bbs/{index} 같이 uri 요청이 들어오면  /bbs/13 URL 경로에서 경로변수에 해당하는 (13) 가져와서 articleId 매개변수에 저장하여 사용합니다.

@PostMapping("/bbs/{index}")

@ResponseBody

public boolean deletePost(@PathVariable("index") int articleId) {

//...

return true;

}

 

 

 

@Controller

@RequestMapping("/bbs")

public class BbsController{

@Autowired

private BbsService bbsService;

 

@RequestMapping(value = "/{index}", method = RequestMethod.POST)

public boolean deletePost(@PathVariable("index") int articleId) {

        //...

        return true;

}

}

 

 

 

 


'Development > Spring' 카테고리의 다른 글

Static Web Resource 처리  (0) 2019.08.09
"Spring Explorer" 뷰 오픈 하기  (0) 2019.07.27
@PathVariable  (0) 2019.07.07
STS4에서 Spring Legacy Project 생성하기  (0) 2019.06.15
eclipse/STS - Spring 환경구성  (0) 2019.06.06
Jackson Library 검색 및 설치  (0) 2019.05.18
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

STS4에서 Spring Legacy Project 생성하기

 

·         기존 메뉴 항목 확인하기

·         Eclipse Marketplace 실행

·         STS3 Add-On 설치

·         "Spring Legacy Project" 메뉴 확인하기

 

 

 

 

 

기존 메뉴 항목 확인하기

"Spring Legacy Project" STS3까지만 제공되면 STS4부터는 Spring Boot 기본이여서 빠져 있습니다.

 

eclipse 메뉴: [File] >> [New] >> [Project…]


 

 

"Spring" 항목이 없습니다.


 

 

 

 

 

Eclipse Marketplace 실행

 

eclipse 메뉴: [Help] >> [Eclipse Marketplace…]


 

 

 

 

 

 

STS3 Add-On 설치

STS 검색 >>

[Spring Tools 3 Add-On(aka Sprint Tool Suite 3)] 항목의 [Install] 버튼을 클릭합니다.

 


 


 

 

[Confirm]


 


 

 

[I accept the terms of the license agreements] 체크 >>

[Finish]


 

 

설치 ...


 

 

[Restart Now]


 


 

 

 

 

 

 

"Spring Legacy Project" 메뉴 확인하기

eclipse 재시작하면 STS3 Dashboard탭이 오픈됩니다.


 

 

 

"Spring Legacy Project" 메뉴가 다시 보입니다.

 

eclipse 메뉴: [File] >> [New] >> [Project…] >>

[Spring] > [Spring Legacy Project] 선택 >> [Next]

 


 

 

STS3에서 프로젝트 생성과 동일합니다.


 



'Development > Spring' 카테고리의 다른 글

"Spring Explorer" 뷰 오픈 하기  (0) 2019.07.27
@PathVariable  (0) 2019.07.07
STS4에서 Spring Legacy Project 생성하기  (0) 2019.06.15
eclipse/STS - Spring 환경구성  (0) 2019.06.06
Jackson Library 검색 및 설치  (0) 2019.05.18
MyBatis3의 주요 컴포넌트 역할  (0) 2019.05.09
Posted by codedragon codedragon

댓글을 달아 주세요