1.Spring Boot是什么?
springboot是一个开发基于spring框架的应用的快速开发框架。为了解决spring配置繁琐的问题。
2.有什么优缺点?
1.独立运行,只要打成jar包就能独立运行
2简化maven配置,起步依赖。
3自动装配。
4.简化部署,是微服务和分布式的主流
缺点:
1.传统项目微服务改造难
2.使用简单,上手快,精通难。
3将原有spring项目转成springboot项目,很困难。
3.特性
能够快速创建基于spring的程序
能够直接使用Java main方法启动内嵌的Tomcat服务器运行springboot程序,不需要部署war包
提供约定的starter POM来简化Maven配置,让Maven的配置变得简单
自动化配置,根据项目的Maven依赖配置,springboot自动配置spring、springmvc等
提供了程序的健康检查功能
基本可以完全不使用xml配合文件,采用注解配置
4.springboot自动装配原理是什么?
当main方法执行/启动,到springbootapplication.再到底层注解enableautoconfiguration去
meta-inf文件下spring.factories获取enableautoconfiguration作为key的所有类的全路径。这些全路径都是自动配置类,交给了spring容器,会自动识别条件注解和bean注解实现自动配置,创建比如redistemplate对象交给spring容器,所以再使用的时候进行注入就可以了,因为已经自动配置了。
5.配置加载顺序
propertiese文件,yml文件,系统环境变量,命令行参数。
6.四大核心
自动配置、起步依赖、Actuator、命令行界面
7.项目结构如下:
static:存放静态资源。如图片、CSS、JavaScript 等
templates:存放 Web 页面的模板文件
application.properties/application.yml 用于存放程序的各种依赖模块的配置信息,比如 服务端口,数据库连接配置等
.gitignore:使用版本控制工具 git 的时候,设置一些忽略提交的内容
Application.java:SpringBoot 程序执行的入口,执行该程序中的 main 方法,启动当前SpringBoot项目。
对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
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--继承 SpringBoot 框架的一个父项目,所有自己开发的 Spring Boot 都必须的继承-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--当前项目的 GAV 坐标-->
<groupId>com.bjpowernode.springboot</groupId>
<artifactId>002-springboot-springmvc</artifactId>
<version>1.0.0</version>
<!--maven 项目名称,可以删除-->
<name>002-springboot-springmvc</name>
<!--maven 项目描述,可以删除-->
<description>Demo project for Spring Boot</description>
<!--maven 属性配置,可以在其它地方通过${}方式进行引用-->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--SpringBoot 框架 web 项目起步依赖,通过该依赖自动关联其它依赖,不需要我们一个一个去添加
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpringBoot 框架的测试起步依赖,例如:junit 测试,如果不需要的话可以删除-->
<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>
</dependencies>
<build>
<plugins>
<!--SpringBoot提供的打包编译等插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
创建SpringBootController 类
package com.bjpowernode.springboot.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class SpringBootController {
@RequestMapping(value = "/springBoot/say")
public @ResponseBody String say() {
return "Hello,springBoot!";
}
}
启动Application类中的main方法
在浏览器中输入 http://localhost:8080/springBoot/say进行访问
Spring Boot 事务支持
springboot事务底层依然采用的是 Spring 本身提供的事务管理。
在入口类中使用注解@EnableTransactionManagement开启事务支持
在访问数据库的service方法上添加注解@Transactional即可。
希望对大家有帮助,有用的大家可以点个关注~~~