一、SpringBoot特点
- SpringBoot项目不需要模板化的配置。
- SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了。
- SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.iava的文件去编写配置信息。
- SpringBoot工程在部署时,采用的是jar包的方式,内部自动依赖Tomcat容器,提供了多环境的配置。
- 微服务框架SpringCloud需要建立在SpringBoot的基础上。
二、创建工程
2、目录结构:
-src
? ?-main
? ? ? -java ? ? ? ? ?-包名 ? ? ? ? ? ? 启动类. java? ? ? ? ?#需要将controller类,放在启动类的子包中或者同级包下 ? ? ? -resources ? ? ? ? ?-static? ? ? ? ? ? ? ? ? ? ? #存放静态资源的 ? ? ? ? ?-templates? ? ? ? ? ? ? #存储模板页面的 ? ? ? ? ?application. properties? ? #SpringBoot提供的唯一的配置文件 ? ? ? ? ?-test? ? ? ? ? ? ? ? ? ? ? ? ? ?#只是为了测试用的
3、SpringBoot三种启动方式
- 运行启动类的main方法即可运行SpringBoot工程
- 采用maven的命令去运行SpringBoot工程? ?mvn spring-boot:run
- 采用jar包的方式运行:将当前项目打包成一个jar文件,通过java -jar jar文件。
三、常用注解?
1、@Configuration和@Bean
- @Configuration代表当前类是一个配置类
- @Bean构建一个实例,放到spring容器中
2、@SpringBootApplication
- @SpringBootConfiguration就是@Configuration注解,代表启动类就是一个配置类。
- @EnableAutoConfiguration实现自动装配
- @ComponentScan扫描注解
四、常用配置
1、配置文件格式
SpringBoot的配置文件支持properties和yml,还支持json,推荐使用yml。
- yml文件,会根据换行和缩进帮助管理配置文件所在位置。
- yml文件,相比properties更轻量级一些
- 严格遵循换行和缩进
- 在填写value时,一定要在:后面跟上空格
2、多环境配置?
#在application.yml文件中添加一个配置项
spring:
profiles:
active: 环境名
java -jar . \first-springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=环境名
#在resource目录下,创建多个application-环境名.yml文件即可
3、如何引入外部配置文件信息?
@Value("${picPath}")
private String picPath;
@ConfigurationProperties(prefix = "aliyun")
@Compogent
@Data
public class AlivunProperties {
private String XXX;
}
热加载?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-bopt-devtools</artifactId>
<optional>true</optional>
</dependency>
File->Seting->Compiler->Build勾选
五、SpringBoot整合Mybatis
(一)XML整合Mybatis
1、导入XML
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--druid连接-->
<dependency>
<groupId>com. alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
?2、编写配置文档
- entity-->POJO实体类(注意要?implements Serializable)
- 准备Mapper接口:mapper-->public interface 接口名-->写一个方法,同时主函数中扫描此接口
@MapperScan(basePackages="com.qf.firstspringboot.mapper(接口所在文件夹)")
- 准备映射文件:resources-->mapper-->接口名.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<! DOCTYPE mapper
PUBLIC"-//mybatis.orgl/DTD Mapper 3.0//EN"
"http: //mybatis.org/dtd/mybatis-3-mapper. dtd">
<mapper namespace="com.mapper.AirMapper">
<select id="findAll" resultType="Air">
select * from air
</select>
</mapper>
驼峰映射:yml-->
# mybatis配置
mybatis:
#扫描映射文件
mapper-locations: classpath:mapper/*.xml
#配置别名扫描的包
type-aliases-package: com.entity
configuration:
#开启驼峰映射配置
map-underscore-to-camel-case:true
#查看sql语句
logging:
leve1:
com.mapper: DEBUG
#连接数据库的信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbe:mysql:///air?serverTimezone=UTC
username : root
password: root
type: com.alibaba.druid.pool.DruidDataSource
测试:接口右键-->go to-->test-->
class AirMapperTest extends FirstSpringbootApplicationTests {
@Autowired
private AirMapper airManper;
@Test
void findAll(){
List<Air> list = airMapper.findA11();
for (Air air : list){
System. out. println(air) ;
}
}
}
(二)注解方式整合Mybatis
@lnsert@Delete@Update@Select
需要在启动类中添加@MapperScan注解
public interface DistrictMapper {
@Select ("select * from district)
List<District> findAll() ;
@Select("select * from district where id =#{id})
District findOneById (@Param("id") Integer id) ;
}
?(三)SpringBoot整合分页助手
1、导入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
2、测试使用
@Test
public void findByPage(){
//1.执行分页
PageHelper.startPage(pageNum: 1,pageSize:5);
//2.执行查谶
List<Air> list = airMapper. findAll() ;
//3.封装PageInfo对象
PageInfo<Air> pageInfo = new PageInfo<>(list) ;
//4.输出
for (Air air : pageInfo.getList()) {
System. out. println(air);
}
六、SpringBoot整合JSP
<!--JSP核心引擎依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSTL-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactld>jstl</artifactId>
<dependency>
2、创建webapp(mian下)以及WEB-INF(webapp下)存放JSP页面并指定view的前缀和后缀
//Controller
@Controller
public class JspController {
@GetMapping("/index")
public String index () {
return "index";
}
<!--yml-->
spring:
mvc:
#视图的前缀和后缀view:
prefix:/WEB-INF/
suffix: .jsp
<%@ page import="java.util.*" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>${name}</h1>
</body>
</htm1>
|