지금 Spring framework + Jetty로 HelloWorld 웹 어플리케이션을 만들고 있습니다.
가동 중인 기존 시스템의 학습이기 때문에 최신 기술 창고가 아니라 조금 낡은 조합이다.
웹 응용 프로그램을 배치하지 않고 로컬에서만 실행합니다.
사용한 도구와 필자의 지식 수준.
환경 준비
Java를 놓쳤기 때문에 직접 사용합니다.어른의 경우 14도 11도 아닌 Java8이기 때문이다.$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
아무튼 맥이니까 brew로 Maven을 넣어요.$ brew install maven
(略)
$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
(略)
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
IntelliJ 설치
IntelliJ IDEA Community가 설치되어 있습니다.GUI로 넣었기 때문에 방법을 생략했습니다.
취향에 따라 설정을 바꾸다.
여기가 참고가 됐습니다.https://www.karakaram.com/intellij-idea-always-do-things/
본인은 기본적으로 직접 사용하는 스타일이지만 정신위생적으로 좋지 않아서 키맵(특히 C-h, C-d)만 조금 했어요.
항목 만들기
먼저 GitHub에 빈 항목을 만든 다음 clone을 시작합니다.여기는 작업 목록입니다.$ git clone https://github.com/sekikatsu36/spring-sample.git
$ cd spring-sample
$ git config --local user.name "sekikatsu36"
$ git config --local user.email "(略)"
IntelliJ에서 Maven을 위한 새 프로젝트가 생성되었습니다.설정을 특별히 변경하지 않고 기본 설정을 유지합니다.
이로써 초기 상태가 완성됩니다.$ ls -a
. .DS_Store .gitignore pom.xml src
.. .git .idea spring-sample.iml
스프링 프레임 설정
인터넷에는 스프링 부트의 글이 많은데 스프링 프레임워크는 매우 적다.
그럼에도 불구하고 스프링 프레임워크가 필요하기 때문에pom을 사용할 수 있도록 합니다.xml을 수정합니다.
이것이 완성형이다.
pom.xml<?xml version="1.0" encoding="UTF-8"?>
<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>org.example.api</groupId>
<artifactId>spring-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- pom.xml内でバージョンを変数的に扱えるようにする -->
<spring.version>5.2.5.RELEASE</spring.version>
<jetty.version>9.4.11.v20180605</jetty.version>
</properties>
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- jetty -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
</plugins>
</build>
</project>
최초 단계에서는 properties
과dependencies
만 썼다.다른 점에 관해서는 나중에 추가로 설명하겠습니다.
참조에 오류가 발생했을 때
자신의 환경에서 찾을 수 없는 오류가 발생했다org.springframework.spring-webmvc:5.2.5.RELEASE
.
저장소에 존재합니다.
다음을 수행합니다.mvn clean install
결과
$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
$ brew install maven
(略)
$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
(略)
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
먼저 GitHub에 빈 항목을 만든 다음 clone을 시작합니다.여기는 작업 목록입니다.
$ git clone https://github.com/sekikatsu36/spring-sample.git
$ cd spring-sample
$ git config --local user.name "sekikatsu36"
$ git config --local user.email "(略)"
IntelliJ에서 Maven을 위한 새 프로젝트가 생성되었습니다.설정을 특별히 변경하지 않고 기본 설정을 유지합니다.이로써 초기 상태가 완성됩니다.
$ ls -a
. .DS_Store .gitignore pom.xml src
.. .git .idea spring-sample.iml
스프링 프레임 설정
인터넷에는 스프링 부트의 글이 많은데 스프링 프레임워크는 매우 적다.
그럼에도 불구하고 스프링 프레임워크가 필요하기 때문에pom을 사용할 수 있도록 합니다.xml을 수정합니다.
이것이 완성형이다.
pom.xml<?xml version="1.0" encoding="UTF-8"?>
<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>org.example.api</groupId>
<artifactId>spring-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- pom.xml内でバージョンを変数的に扱えるようにする -->
<spring.version>5.2.5.RELEASE</spring.version>
<jetty.version>9.4.11.v20180605</jetty.version>
</properties>
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- jetty -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
</plugins>
</build>
</project>
최초 단계에서는 properties
과dependencies
만 썼다.다른 점에 관해서는 나중에 추가로 설명하겠습니다.
참조에 오류가 발생했을 때
자신의 환경에서 찾을 수 없는 오류가 발생했다org.springframework.spring-webmvc:5.2.5.RELEASE
.
저장소에 존재합니다.
다음을 수행합니다.mvn clean install
결과
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example.api</groupId>
<artifactId>spring-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- pom.xml内でバージョンを変数的に扱えるようにする -->
<spring.version>5.2.5.RELEASE</spring.version>
<jetty.version>9.4.11.v20180605</jetty.version>
</properties>
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- jetty -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
</plugins>
</build>
</project>
mvn clean install
Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.2.5.RELEASE/spring-webmvc-5.2.5.RELEASE.jar
/Users/(ユーザ名)/.m2/repository/org/springframework/spring-webmvc/5.2.5.RELEASE
추가됨소스를 쓰다
기본적으로 https://qiita.com/kasa_le/items/6aaf17823db67c951fb0에 따라 하면 된다.
하지만 이 기사는 IntelliJ IDEA Ultimate
였기 때문에 IDEA Community
중보기 만들기 이후 이렇게 움직이지 않았다.
한 마디로 하면 컨트롤러의 제작과view 폴더의 제작이 이루어지기 전에 이렇게 끝납니다.
다음 상태./src/main
/java/org/example/controllers
IndexController.java
/webapp/WEB-INF
/views
web.xml
dispatcher-servlet.xml
JSP 파일 만들기
Community 버전의 경우 Spring 지원이 없기 때문에 파일 새로 만들기JSP/JSPX
에는 나타나지 않습니다.https://www.jetbrains.com/ja-jp/idea/features/editions_comparison_matrix.html
그래서 보통 선택File
, 모두 자제한다.
index.jsp<%@ page import="org.example.controllers.IndexController" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Spring Test Page</title>
</head>
<body>
<p>${someAttribute}</p>
</body>
</html>
Jetty로 시작합니다.
어른들 때문에 Tomcat이 아니라 Jetty를 사용합니다.
IntelliJ IDEA의 Ultimate(유상 버전)라면 Tomcat이 기본적으로 내장되어 있는 것 같습니다(?)하지만 커뮤니티이기 때문에 도저히 사용할 수 없습니다.
Jetty는 사전 설치가 필요 없어서 편해요.
참조http://zetcode.com/spring/jetty/,pom.xml에 다음 내용을 추가했습니다.
<packaging>war</packaging>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
이런 상태에서.mvn jetty:run
실행, 액세스http://0.0.0.0:8080
시 HelloWorld를 안전하게 표시합니다.
maven-compiler-plugin
에서 원본과 대상을 지정하지 않은 버전이 5인 것 같습니다. 오류가 발생했습니다.http://orionb312.hatenablog.com/entry/2018/03/06/233734 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project spring-sample: Compilation failure: Compilation failure:
[ERROR] ソース・オプション5は現在サポートされていません。7以降を使用してください。
[ERROR] ターゲット・オプション5は現在サポートされていません。7以降を使用してください。
끝내다
완성된 물건은 아래와 같다.
https://github.com/sekikatsu36/spring-sample
아무튼 스프링이 이동하는 곳을 확인했어요.
좀 더 하고 싶은 곳.
/src/main
/java/org/example/controllers
IndexController.java
/webapp/WEB-INF
/views
web.xml
dispatcher-servlet.xml
<%@ page import="org.example.controllers.IndexController" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Spring Test Page</title>
</head>
<body>
<p>${someAttribute}</p>
</body>
</html>
어른들 때문에 Tomcat이 아니라 Jetty를 사용합니다.
IntelliJ IDEA의 Ultimate(유상 버전)라면 Tomcat이 기본적으로 내장되어 있는 것 같습니다(?)하지만 커뮤니티이기 때문에 도저히 사용할 수 없습니다.
Jetty는 사전 설치가 필요 없어서 편해요.
참조http://zetcode.com/spring/jetty/,pom.xml에 다음 내용을 추가했습니다.
<packaging>war</packaging>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
이런 상태에서.mvn jetty:run
실행, 액세스http://0.0.0.0:8080
시 HelloWorld를 안전하게 표시합니다.maven-compiler-plugin
에서 원본과 대상을 지정하지 않은 버전이 5인 것 같습니다. 오류가 발생했습니다.http://orionb312.hatenablog.com/entry/2018/03/06/233734 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project spring-sample: Compilation failure: Compilation failure:
[ERROR] ソース・オプション5は現在サポートされていません。7以降を使用してください。
[ERROR] ターゲット・オプション5は現在サポートされていません。7以降を使用してください。
끝내다
완성된 물건은 아래와 같다.
https://github.com/sekikatsu36/spring-sample
아무튼 스프링이 이동하는 곳을 확인했어요.
좀 더 하고 싶은 곳.
Reference
이 문제에 관하여(지금 Spring framework + Jetty로 HelloWorld 웹 어플리케이션을 만들고 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sekikatsu/items/7b2c2445ebdee5edead1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)