Spring Boot学习笔记 03
0x01 SpringBoot集成JSP
打开IDEA创建SpringBoot项目后,在src文件夹的main中创建一个新的文件夹webapp来存放web资源(假如原来没有webapp文件夹)。
创建好在模块设置中的模块->Web->Web资源目录添加上面创建的webapp目录,相对与部署根的路径为/
,然后点击创建工件,最后点击应用,就完成了webapp的设置,待会在里面创建jsp文件就行了。
由于项目本身对jsp的解析并不支持,所以在pom.xml文件里面要添加对jsp解析的包的依赖:
1 2 3 4 5 6
|
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
|
然后为了使jsp正常编译,还要在pom.xml的____中添加:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <resources> <resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>*.*</include> </includes> </resource> </resources>
|
在核心配置文件中添加视图解析器:
1 2 3
| spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp
|
接下来我们就要设置@Controller了,在Application.java文件的同级目录或下级目录创建一个Controller/IndexController.java,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package com.springboot.springboot010jsp.web;
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;
@Controller public class IndexController {
@RequestMapping(value = "/say") public ModelAndView say() { ModelAndView mv = new ModelAndView(); mv.addObject("message", "Hello Springboot!"); mv.setViewName("say"); return mv; }
@RequestMapping(value = "/index") public String index(Model model) { model.addAttribute("message", "Hello world"); return "say"; } }
|
然后在webapp上创建对应的say.jsp:
1 2 3 4 5 6 7 8 9
| <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>${message}</h1> </body> </html>
|
次jsp用来显示${message}
结果:
浏览器输入localhost:8080/say,输出结果为:Hello Springboot!
浏览器输入localhost:8080/index,输出结果为:Hello world
分别对应@Controller里面两个Attribute。
以上步骤缺一不可!
0x02 如何在一个单纯的Maven框架上手动配置SpringBoot
前面我们创建一个SpringBoot项目都是用idea自带的Springboot框架来创建,那我们如何在一个只有pom.xml和Meven文件结构的项目里面自己手动创建一个SPringboot项目呢,这个方法适用于一开始创建SpringBoot项目时网不好的情况。
首先我们在Pom.xml文件里面添加对应的SpringBoot依赖:
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 32 33 34 35 36
| <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.2</version> <relativePath/> </parent> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
|
这里只给出需要添加的部分,并不是覆盖的意思。
然后文件结构也需要改变:
在src/main/java中创建包com.auspic1ous.springboot
在其中创建一个Application.java(名字随意):
1 2 3 4 5 6 7 8 9 10 11 12
| package com.auspic1ous.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }
}
|
最后还要在src/main/resources中创建如下文件、文件夹:
- static(文件夹):图标等静态资源放入此文件夹
- templates(文件夹):模板,前端模板引擎放入此文件夹Thyme leaf.html(百叶箱)
- application.properties:SpringBoot的核心配置文件
0x03 SpringBoot继承Mybatis
0x0301 添加Mybatis依赖
和数据库驱动(mysql)
Pom.xml中添加依赖:
1 2 3 4 5 6 7 8 9 10 11
| <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency>
|
0x0302 使用Mybatis提供的逆向工程生成实体Bean,映射文件,BAO接口。
pom.xml添加依赖和插件:
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 32 33 34 35 36 37 38
| <dependencies>
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> </dependency> </dependencies> <build> <plugins> <plugin>
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> <configuration> <configurationFile>GeneratorMapper.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </build>
|
根目录下新建一个xml文件,文件名为:GeneratorMapper
:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <classPathEntry location=""/> <context id="tables" targetRuntime="Mybatis3"> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/springboot" userId="root" password="admin123456"> </jdbcConnection> <javaModelGenerator targetPackage="com.auspic1ous.springboot.model" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> <property name="trimStrings" value="false"/> </javaModelGenerator>
<sqlMapGenerator targetPackage="com.auspic1ous.springboot.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> </sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.auspic1ous.springboot.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <table tableName="t_student" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> </context>
</generatorConfiguration>
|
然后在com.auspic1ous.springboot下创建mapper和model两个包。
当我们重新构建该项目后,mapper中就会根据数据库自动生成对应的接口类和映射文件xml,model中就会根据数据库自动生成对应的java模型,这样就节省了 我们手动编写mapper和model两个文件夹里面的内容,非常好用~