手机扫码查看
2020java微服务架构六之springboot教程
一、SpringBoot介绍
SpringBoot是由pivotal团队研发的,SpringBoot不是一门新技术,只是将之前的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。
SpringBoot就是一个工具集。
SpringBoot的特点:
1.SpringBoot项目不需要模板化的配置
2.SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了
3.SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.java文件去编写配置信息
4.SpringBoot工程在部署时,采用的是jar包方式,内部自动依赖Tomcat容器,提供了多环境的配置
5.后期要学习的微服务框架SpringClound需要建立在SpringBoot的基础上
二、SpringBoot快速入门(重点)
2.1 快速创建 SpringBoot
2.1.1 选择构建项目的类型

2.1.2 项目的描述

2.1.3 指定SpringBoot版本和需要的依赖

2.1.4 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>//在starter后面追加 -web
</dependency>
2.1.5 编写Controller

2.1.6 测试


2.2 SpringBoot的目录结构
2.2.1 pom.xml 文件
1.指定了一个父工程:指定当前工程为SpringBoot,帮助我们声明了starter依赖的版本
2.项目的元数据:包名,项目名,版本号
3.指定了 properties 信息:指定了java的版本为1.8
4.导入依赖:默认情况下导入spring-boot-starter,spring-boot-starter-test
5.插件:spring-boot-maven-plugin
2.2.2 .gitignore 文件
默认帮我们忽略了一些文件和目录,避免提交到git仓库中
2.2.3 src目录
-src
-main
-java
-包名
启动类.java # 需要将controller类,放在启动类的子包中或者同级包下
-resources
-static #存放静态资源
-templates #存放模板页面的
application.properties #SpringBoot提供的唯一的配置文件
-test # 测试
2.3 SpringBoot启动方式
2.3.1 运行启动类的main方法
2.3.2 maven指令:mvn spring-boot:run
2.3.3 采用jar包的方式运行
将当前项目打包成一个jar包,并通过 java -jar jar文件
三、SpringBoot常用注解(重点)
3.1 @Configuration和 @Bean
之前使用SSM开发时,在xml文件中编写bean标签,但是springboot不推荐使用xml
@Configuration注解相当于beans标签
@Bean 相当于bean标签
id=”方法名” | 注解中的name属性(优先级更高)
class=”方法的返回结果”
@Configuration //代表当前类是一个配置类
public class UserConfig {
@Bean // 构建一个实例,放到spring容器
public User user(){
return new User(1,"admin");
}
}
3.2 @SpringBootConfiguration
@SpringBootConfiguration 就是一个组合注解:
@SpringBootConfiguration 就是 @Configuration注解,代表启动类就是一个配置类
@EnableAutoConfiguration 帮你实现自动装配,SpringBoot工厂启动时,运行一个SpringFactoriesLoader的类,加载META-INF/spring.factories配置类(已经开启的),通过SpringFactoriesLoader中的load方法,以for循环的方式,一个一个加载。
好处:无需编写大量的整合配置信息,只需要按照springboot提供好的约定去整合即可
坏处:如果说你导入了一个starter依赖,那么你就需要填写必要的配置信息
手动关闭自动装配指定内容:@SpringBootApplication(exclude = QuartzAutoConfiguration.class)
@ComponentScan 相当于<context:compent-scan basePackage=”包名” />帮助注解扫描的
四、SpringBoot常用配置(重点)
4.1 SpringBoot的配置文件格式
SpringBoot的配置文件支持 properties 和 yml ,甚至还支持json
更推荐使用 yml文件格式:
1.yml文件会根据换行和缩进帮助我们管理配置文件所在位置
2. yml 文件,相比properties更轻量级一些
yml的劣势:
1.严格遵守换行和缩进
2.在填写value时,一定要在:后面跟上空格
4.2 多环境配置
在application.yml 文件中添加一个配置项:
spring:
profiles:
active: 环境名
在 resources目录下创建多个 application-环境名.yml 文件即可,在部署工程时,
通过 java -jar jar文件 –spring.properties.active=环境
4.3 引入外部配置文件信息
和传统的SSM方式不一样,通过 @Value的注解去获取properties/yml文件中的内容。
如果在yml文件中需要编写大量的自定义配置,并且具有统一的前缀时,采用如下方式
@ConfigurationProperties(prefix = "aliyun")
@Component
@Data
public class AliyunProperties {
private String aaaa;
private String bbbb;
}
yml配置文件
aliyun: aaaa: aaaaa bbbb: bbbbb
4.4 热加载
4.4.1 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
4.4.2 settings配置

4.4.3 重新构建工程

五、SpringBoot整合Mybatis(重点)
5.1 xml方式整合mybatis
xml方式在编写复杂SQL时,更适合
5.1.1 导入依赖
<!-- 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>1.3.2</version>
</dependency>
5.1.2 编写配置文件
1.准备实体类 并实现Serializable接口
2.准备mybatis逆向工程
3.yml文件
mybatis:
# 扫描映射文件
mapper-locations: classpath:mapper/*.xml
# 配置别名扫描的包
type-aliases-package: com.evshou.admin.firstspringboot.entity
configuration:
# 开启驼峰映射配置
map-underscore-to-camel-case: true
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:///库名?serverTimezone=UTC
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
5.1.4 测试
5.2 注解方式整合mybatis
注解方式在编写配置简单,简单sql推荐使用
5.2.1 创建 实体类的 mapper接口
5.2.2 添加mybatis注解
针对增删改查:@Insert,@Delete,@Update,@Selete
还是需要在启动类中添加 @MapperScan 注解
@Select(“select*from user”)
List<User> queryAllUser();
5.2.3 添加配置
logging:
level:
com.evshou.admin.firstspringboot.mapper: DEBUG
5.2.4 测试,查看日志
创建测试类并继承FirstSpringBootApplicationTests,自动装配mapper对象
5.3 SpringBoot整合分页助手
5.3.1 导入依赖
<!-- 分页 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
5.3.2 测试

六、SpringBoot整合JSP
6.1 导入依赖
<!-- jsp核心引擎依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
6.2 创建 jsp页面

6.3 配置前缀和后缀
spring:
mvc:
view:
prefix: /WEB-INF/
suffix: .jsp
6.4 创建 controller
@Controller
public class JspController {
@GetMapping("/index")
public String index(Model model){
model.addAttribute("username","张三");
return "index";
}
}



发表回复