第一个SpringBoot框架web项目
1、新建一个空项目
2、新建Module,选择Spring Initializr,选择JDK版本点击下一步
3、填好信息,选择下一步,包名不能以数字开头
4、选择依赖选择Web-Spring Web,下一步
5、创建成功
SpringBoot继承SpringMVC
1、新建一个SpringBoot项目
2、在Application所在包下创建子包controller
3、创建Controller类,在上方加入@Controller注解
4、启动Application类中的main方法
@Controller
public class MyController{
@RequestMappint(value="/say")
public @ResponseBody String say(){
return "sayHello";
}
}
Spring框架的核心配置文件application.properties
//设置其他环境的配置
spring.profiles.active=test/dev/ready/produce
//dev就是application-dev.properties文件
//设置端口号
server.port=8080
//设置上下文根
server.servlet.context-path=/springboot
yml、yaml
//设置端口号
server:
port: 8080
//设置上下文根
servlet:
context-path: /springboot
获取自定义配置
1、在application.properties中声明
//单个的配置
name="张三"
age=23
//以对象为单位的配置
lisi.name="李四"
lisi.age=20
2、在Application类所在包内创建子包config
3、创建此对象类Lisi,在类上加入注解
1)@Component
2)@ConfigurationProperties(prefix=“lisi”)
@Component
@ConfigurationProperties(prefix="lisi")
public void Lisi{
private String name;
private Integer age;
//set 和 get 方法
}
4、在Controller类中使用
@Autowired
private Lisi lisi;
@Value("${name}")
private String name;
@RequestMapping(value = "/say")
public @ResponseBody String Say(){
return lisi.getName() + lisi.getAge() + name;
}
自定义配置出现警告 。加入依赖进行处理
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
配置文件中文乱码问题
设置—>Editor—>File Encodings—>
SpringBoot集成jsp
1、在main包下创建webapp文件夹
2、点击项目结构,点击Web,将此文件夹改为web资源文件夹
3、引入springboot内嵌tomcat对jsp的解析包(加入依赖)
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
4、springboot项目默认推荐使用的前端引擎是thymeleaf
现在我们要使用springboot集成jsp,手动指定jsp最后编译的路径
否则没有他的位置。而且位置已经被规定(META-INF/resources)
<build>
<resources>
<resource>
<!--源文件-->
<directory>src/main/webapp</directory>
<!--编译后的文件位置-->
<targetPath>META-INF/resources</targetPath>
<includes>
<!--指定哪个资源要编译-->
<include>*.*</include>
</includes>
</resource>
</resources>
</build>
5、在application.properties中配置视图解析器
spring.mvc.view.prefix=/
spring.mvc.view.suffix.jsp
springboot集成mybatis
1、添加mysql和mybatis的驱动
<!--mysql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis的驱动-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
2、创建表
3、在项目根目录创建文件、GeneratorMapper.xml
<?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-cconfig_1_0.dtd">
<generatorConfiguration>
<!--指定连接数据库的JDBC驱动包所在位置,指定到本机的完整路径-->
<classPathEntry location="E:\MySql Connector Java 5.1.23\mysql-connector-java-5.1.23-bin.jar"/>
<!--配置table表信息内容体, targetRuntime指定采用MyBatis3的版本-->
<context id="tables" targetRuntime="MyBatis3">
<!--抑制生成注释,由于生成的注释都是英文,可以不让它生成-->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--配置数据库连接信息-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/springdb"
userId="root"
password="333">
</jdbcConnection>
<!--生成model类,targetPackage指定model类的包名,
target指定生成的model放在哪个工程下面-->
<javaModelGenerator targetPackage="com.qzj.springboot.model"
targetProject="src/main/java">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="false"/>
</javaModelGenerator>
<!--生成MyBatis的Mapper.xml文件,targetPackage表示包名,
targetProject表示在哪个工程下-->
<sqlMapGenerator targetPackage="com.qzj.springboot.mapper"
targetProject="src/main/java" >
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--生成MyBatis的Mapper接口类(dao)文件,targetPackage表示包名,
targetProject表示在哪个工程下-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.qzj.springboot.mapper"
targetProject="src/main/java" >
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!--数据库表名以及java模型名称-->
<table tableName="t_student" domainObjectName="Student"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>
4、添加在pom文件中mybatis-generator插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<configurationFile>GeneratorMapper.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
5、双击插件生成
6、两种方法
1)需要在pom文件中加入资源文件的编译
<resources>
<resource>
<directory>src/main/java</directory><!-- 所在的目录-->
<includes><!-- 包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
2)将mapper.xml放在resources/mapper文件夹中,在application.properties中写入此配置
mybatis.mapper-locations=classpath:mapper/*.xml
7、两种方法:
1)在Mapper接口上方加入@Mapper注解,
2)在Application上方加入@MapperScan(basePackages=“com.xxx.springboot.mapper”)
8、创建service接口并创建方法,创建实现类,并在上方加入@Service注解,通过自动注入创建mapper接口,并调用其方法。
9、在application.properties文件中加入数据库连接四要素
10、写Controller类,上方加入@Controller注解,通过自动注入@Autowired创建Service,并调用其方法
//配置数据库连接的四要素
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
//新版本的driver:drive = com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springdb
//新版本的url = jdbc:mysql://localhost:3306/user?serverTimezone=GMT%2B8&characterEncoding=utf8&useUnicode=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=333
高版本的mysql配置
spring:
datasource :
url:
jdbc:mysql://localhost:3306/mydb3?serverTimezone=GMT2B8&useSSL=false&useUnicode=true&characterEncoding=utf-8
//serverTimezone=GMT2B8-这个时区要设置好,不然会出现时差,
有了8个小时的时差
UTC代表的是全球标准时间,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。
//北京时间== 东八区时间! =北京当地时间
serverTimezone=GMT&2B8
//或者使用上海时间
serverTimezone= Asia/ Shanghai
springboot对事务的处理
需要在service实现类上的方法上加入@Transactional
springmvc的常用注解
1、@RestController
在控制层类上,相当于:类上加@Controller + 方法上加@ResponseBody
//意味着当前控制层类中所有的方法返回的都是json对象
2、@GetMapping(value="/select")//相当于RequestMapping(value="",method=RequestMethod.GET)
一般查询数据的时候使用 --> 查询
@PostMapping(value="/insert")//相当于RequestMapping(value="",method=RequestMethod.POST)
一般新增数据的时候使用 --> 新增
@DeleteMapping(value="/delete")//相当于RequestMapping(value="",method=RequestMethod.DELETE)
一般删除数据的时候使用 --> 删除
@PutMapping(value="/updata")//相当于RequestMapping(value="",method=RequestMethod.PUT)
一般修改数据的时候使用 --> 更新
RESTful风格
SpringBoot继承thymeleaf
在resources目录下的templates下创建html文件
@Controller
public void IndexController(){
@RequestMappint(value="/index")
public String index(Model model){
model.addAttribute("data","thymeleaf");
//返回的网页默认加上了视图解析器,都会指向根目录的templates下
return "index";
}
}
<!--要在第一行加入命名空间-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div th:text="${data}"
thymeleaf的各种配置
在application.properties文件里配置
#设置thymeleaf的视图视图解析器
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
#设置thymeleaf模板引擎的缓存,设置为关闭,默认true开启
cache: false