본문 바로가기

Dev/[Java]

[Spring Boot] JSP로 붙여보기

반응형

Spring Boot 프로젝트를 생성한다. 기존 JAR했었을때처럼 이클립스에 Import방법은 같다.

 

 

 

 

 

메이븐 레포지토리에서 아래 2개를 추가한다.

 

 

이후 Jasper라는것이 필요하다.

기존 Servlet프로젝트에서는 Tomcat에서 기존 제공해줬는데, Spring boot에서는 따로 추가해줘야댄다.

JSTL도 받아준다... MariaDB도..

 

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.8.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>myspring</groupId>
	<artifactId>user</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>user</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>11</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<!-- <exclusions> -->
			<!-- <exclusion> -->
			<!-- <groupId>org.junit.vintage</groupId> -->
			<!-- <artifactId>junit-vintage-engine</artifactId> -->
			<!-- </exclusion> -->
			<!-- </exclusions> -->
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.6</version>
		</dependency>


		<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.4</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
			<artifactId>mariadb-java-client</artifactId>
			<version>2.7.1</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

 

이제 포트번호 지정해주고

그 아래 DB정보를 적어준다.

 

 

이제 DB접속이 잘 되어있는지 확인하기 위해 Runner라는걸 만들어준다.

package myspring.user.runner;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

@Component
public class DBRunner implements ApplicationRunner{
	
	@Autowired
	private DataSource dataSource;
	
	
	// 얘는 어플리케이션 띄우자마자 바로 동작
	@Override
	public void run(ApplicationArguments args) throws Exception {
		System.out.println(dataSource.getClass().getName());
	}

}

 

 

실행하니 HikariDataSource의 name이 호출되었다.

 

Hikari가 내장되어있어서 그렇단다.

 

 

 

여기서 이제 WEB을 붙일건데...

-Boot는 JSP와 친하지 않다고 하셨던 이유가 여기서 나옴..

 

순서 : 

1. src -> main -> webapp -> WEB-INF -> jsp 폴더까지 생성하고, 여기다가 JSP파일을 생성해야한다.

 

2. 위 1번의 경로를 application.properties에 입력해줘야한다.

server.port=8088

spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/java_db?useUnicode=true&charaterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=scott
spring.datasource.password=tiger

spring.mvc.view.prefix=/WEB-INF/jsp
spring.mvc.view.suffix=.jsp

 

 

이후 Controller만들어준다.

package myspring.user.controller;

import org.springframework.stereotype.Component;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Component
public class TemplateController {
	
	@GetMapping("/main")
	public String main(Model model) {
		model.addAttribute("name", "타임리프");
		return "/main";
	}

}

 

static폴더 밑에 index.html만들어주고(진입점)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="main">dasdasd</a>

</body>
</html>

 

아까 만들어둔 src -> main -> webapp -> WEB-INF -> jsp에 JSP생성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Name : ${name} }</h3>
</body>
</html>
반응형