일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- javascript
- popup
- Next.js
- jenkins
- Push
- PM2
- MariaDB
- mybatis
- yona
- pwa
- node.js
- SpringBoot
- NextJS
- spring3
- FCM
- git
- Maven
- rocky9
- config
- jquery
- nodejs
- mysql
- docker
- centos7
- Eclipse
- ajax
- security
- Java
- MSsql
- submit
- Today
- Total
ふたりで
Springboot2.x Web 프로젝트 설정 1(프로젝트 생성 및 JSP설정) 본문
- 목표 프로젝트구성
1. springboot 2.x
2. Maven 4
3. spring-security
4. mariadb(mysql)
5. mybatis2
6. war 파일 배포
- 이번 포스팅은 springboot2.x로 web 프로젝트를 구성하여 테스트용 jsp 페이지를 출력해 보는 것까지
정리를 한다.
1. springboot Web프로트 생성
2. application.properties 에 DB연결 정보를 설정해 준다.
mysql 관련 dependency가 pom.xml에 추가되어 있기 때문에 아래와 같이 DB연결 설정을 기본으로 하지 않을 경우
에러가 발생한다. 해당 설정 값은 추후 mybatis를 설정할 때 한 번 더 세밀하게 수정할 예정이다.
spring.datasource.url=jdbc:mysql://192.168.56.1:3306/test
spring.datasource.username=user1
spring.datasource.password=1234567
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3. 이 부분은 파일 하나로 관리 하기 위해 수정을 하였지만 굳이 수정을 하지 않아도 된다.
SpringBootTest2Application.java 파일과 ServletInitializer.java 파일을 한 개의 파일로 합치기.
SpringBootTest2Application.java 파일을 아래와 같이 수정한 후 ServletInitializer.java 파일은 삭제한다.
package com.graykang.test2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@ServletComponentScan
@SpringBootApplication
public class SpringBootTest2Application extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
return applicationBuilder.sources(SpringBootTest2Application.class);
}
public static void main(String[] args) {
SpringApplication.run(SpringBootTest2Application.class, args);
}
}
4. Maven install을 실행하여 정상 적으로 빌드가 되는지 확인한다.
[[1;34mINFO[m] [1m--- [0;32mmaven-install-plugin:2.5.2:install[m [1m(default-install)[m @ [36mspring-boot-test2[0;1m ---[m
[[1;34mINFO[m] Installing C:\sts4-expro\spring-boot-test2\target\spring-boot-test2-0.0.1-SNAPSHOT.war to C:\Users\tenpe\.m2\repository\com\graykang\test2\spring-boot-test2\0.0.1-SNAPSHOT\spring-boot-test2-0.0.1-SNAPSHOT.war
[[1;34mINFO[m] Installing C:\sts4-expro\spring-boot-test2\pom.xml to C:\Users\tenpe\.m2\repository\com\graykang\test2\spring-boot-test2\0.0.1-SNAPSHOT\spring-boot-test2-0.0.1-SNAPSHOT.pom
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 21.906 s
[[1;34mINFO[m] Finished at: 2023-05-08T14:11:03+09:00
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;33mWARNING[m] The requested profile "pom.xml" could not be activated because it does not exist.
5. 프로젝트를 구동 시 아래와 같이 오류가 없이 잘 실행되는지 확인한다.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m [2m (v2.7.12-SNAPSHOT)[0;39m
[2m2023-05-08 14:13:04.142[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mc.g.test2.SpringBootTest2Application [0;39m [2m:[0;39m Starting SpringBootTest2Application using Java 17.0.5 on togethers-hp450 with PID 16388 (C:\sts4-expro\spring-boot-test2\target\classes started by tenpe in C:\sts4-expro\spring-boot-test2)
[2m2023-05-08 14:13:04.143[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mc.g.test2.SpringBootTest2Application [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default"
[2m2023-05-08 14:13:04.189[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.e.DevToolsPropertyDefaultsPostProcessor[0;39m [2m:[0;39m Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
[2m2023-05-08 14:13:04.189[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.e.DevToolsPropertyDefaultsPostProcessor[0;39m [2m:[0;39m For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
[2m2023-05-08 14:13:04.534[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JDBC repositories in DEFAULT mode.
[2m2023-05-08 14:13:04.541[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 3 ms. Found 0 JDBC repository interfaces.
[2m2023-05-08 14:13:04.599[0;39m [33m WARN[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.m.s.mapper.ClassPathMapperScanner [0;39m [2m:[0;39m No MyBatis mapper was found in '[com.graykang.test2]' package. Please check your configuration.
[2m2023-05-08 14:13:04.870[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port(s): 8080 (http)
[2m2023-05-08 14:13:04.877[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.apache.catalina.core.StandardService [0;39m [2m:[0;39m Starting service [Tomcat]
[2m2023-05-08 14:13:04.877[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/9.0.74]
[2m2023-05-08 14:13:04.920[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext
[2m2023-05-08 14:13:04.920[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 730 ms
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[2m2023-05-08 14:13:05.246[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Starting...
[2m2023-05-08 14:13:05.250[0;39m [33m WARN[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mcom.zaxxer.hikari.util.DriverDataSource [0;39m [2m:[0;39m Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
[2m2023-05-08 14:13:05.397[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Start completed.
[2m2023-05-08 14:13:05.464[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.d.a.OptionalLiveReloadServer [0;39m [2m:[0;39m LiveReload server is running on port 35729
[2m2023-05-08 14:13:05.488[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port(s): 8080 (http) with context path ''
[2m2023-05-08 14:13:05.495[0;39m [32m INFO[0;39m [35m16388[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mc.g.test2.SpringBootTest2Application [0;39m [2m:[0;39m Started SpringBootTest2Application in 1.565 seconds (JVM running for 2.1)
6. jsp 사용 설정.
6-1. pom.xml에 아래 두 개의 dependency를 추가해 준다.
<!-- jsp config -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
6-1. application.properties파일에 JSP 사용을 위한 설정을 추가한다.
##jsp
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
6-2. WEB-INF/views 폴더 생성.
src/webapp/WEB-INF/views 경로로 폴더를 생성하고 front 용 폴더를 views폴더 밑에 생성해 주고, test용 JSP 파일을
만들어 준다. test용 jsp 파일은 mainDashBoard.jsp로 만들어 준다.
결과: src/webapp/WEB-INF/views/front/mainDashBoard.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
graykang test SpringBoot Web
</body>
</html>
7. jsp페이지가 잘 로딩되는지 확인하기 위해 Controller.java파일을 아래와 같이 생성한다. 파일 위치는 package 참고.
package com.graykang.test2.front.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class FrontController {
@GetMapping(value = "/front/dashBoard")
public String mainDashBoard() {
return "/front/mainDashBoard";
}
}
8. http://localhost:8080/front/dashBoard로 접속하면 아래와 같이 설정한 페이지가 출력된다.
- 다음 포스팅에서는 mybatis설정 및 DB의 데이터를 조회하여 jsp 페이지에 출력하는 부분까지 포스팅할 예정이다.
'Spring' 카테고리의 다른 글
JsonData를 VO model로 바로 받을때...참고 (0) | 2023.07.07 |
---|---|
browser type check by JAVA (0) | 2023.06.08 |
springboot+security session timeout config (0) | 2022.06.23 |
spring tags + application.properties 값 참조 하기 (0) | 2022.04.28 |
springboot+swagger+config (0) | 2022.04.18 |