1.简介
简化Spring开发的一个框架。对整个Spring技术栈的大整合
J2EE企业级开发的一站式解决方案。
2.微服务
一个应用应该是一组小型服务,可以通过HTTP的方式来进行互通
每一个功能元素都是可独立替换,和独立升级的软件单元。
3.HelloWord
功能:浏览器发送请求,服务器接收并处理,响应helloworld字符串;
1.创建maven项目,配置pom,导入依赖
导入依赖
每一个springboot工程一定有父项目,父项目有版本号,所以后面的依赖不用写版本号。
父项目主要是依赖管理,声明了所有开发中常见的版本号,所以后面不用写版本号,也可以叫做springboot的自动版本仲裁
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
2.导入Springboot相关依赖
HelloController 类
//@ResponseBody//以文本体返回。
//@Controller//说明他能处理请求
@RestController//=ResponseBody+Controller
public class HelloController {//意思为接收浏览器的hello请求@RequestMapping("/hello")public String handle01(){return "hello Spring Boot";}
}
主程序类
//次注解表明这是一个SpringBoot应用
//编写主程序类,是入口
@SpringBootApplication
public class MainApplication {public static void main(String[] args) {SpringApplication.run(MainApplication.class,args);//固定写法,主程序运行}
}
3.快速修改配置文件
SpringBoot中所有的配置都从这里面改applecation.properties
- 修改配置项:
配置项属性从官方文档里找,有清单。
Springboot中生成jar包的插件
在pom文件中
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.4.RELEASE</version></plugin></plugins></build>
打包方法↓
依赖管理和自动配置
每一个springboot工程一定有父项目
父项目主要是依赖管理,声明了所有开发中常见的版本号
每一个springboot工程一定有父项目,父项目有版本号,所以后面的依赖不用写版本号。
可以修改版本号
- 场景启动器
spring-boot-start,不同场景pom依赖引入不同的场景启动器 - 默认扫描规则
主程序所在的包,及其所在的所有子包,都会被扫描进来。 - 想要改变扫描路径
@SpringBootApplication(scanBasePackages = "com.atguigu")
- 所有都有默认配置,都可以通过自定义配置文件applecation.properties来修改
- 引入那个场景starter,就会启动那些包
- 自动配置,只有引入场景的自动配置才会生效,不引入的自动配置不生效
配置类
@Import({User.class, DBHelper.class})//将指定类型的组件类导入,可自动创建指定组件的对象,类似于导入外部Bean
//配置类中使用@Bean标注在方法上
//proxyBeanMethods = true配置类的默认是true
@Configuration(proxyBeanMethods = true)//说明他是一个配置类,=原来的xml配置文件
public class Myconfig {//默认是单实例的组件@Bean//给容器中添加组件,已方法名作为组件id,即bean的id,返回类型就是组件类型,返回的值就是组件bean在容器中实例public User user01(){return new User("zhangsan",18);}@Bean("tom")//也可以自定义名字public Pet TomcatPet(){return new Pet("Tomcat");}
}
注解大全及其含义
SpringBoot官方文档
https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#web
//主程序注解,默认扫描范围为主程序所在的包,及其所在的所有子包,都会被扫描进来。
@SpringBootApplication
//主程序注解,指定扫描范围
@SpringBootApplication(scanBasePackages = "com.atguigu")
//写在组件的类上,标在注解之上
@Import({User.class, DBHelper.class})//将指定类型的组件类导入,可自动创建指定组件的对象,类似于导入外部Bean//条件装配注解@Conditional,@ConditionalOnBean代表当容器中有名为tom的组件bean时,才注册组件beanuser01
//也可以标注在类上。条件装配
@ConditionalOnBean(name = "tom")
@ImportResource("classpase:beans.xml")//把别的地方配置文件的bean导入Sprigng配置中//配置绑定1
//ConfigurationProperties配置绑定功能,只有在容器中,才会拥有springboot提供的强大功能
//ConfigurationProperties(prefix = "mycar")配置绑定,绑定为mycar后面的
/*
绑定为配置文件中的mycar
mycar.brand=BYD
mycar.price=1000
*功能位让javaBean和配置文件的东西绑定
* */
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {private String brand;private Integer price;}//配置绑定2
//在类上注解
@ConfigurationProperties(prefix = "mycar")//这一行必须要
public class Car {private String brand;private Integer price;}
//开启Car属性配置功能
//把Car组件的主动导入到容器中
//在config类上注解
//EnableConfigurationProperties的作用是让ConfigurationProperties注解的类生效
@EnableConfigurationProperties(Car.class)//配置文件中debug=true,开启自动配置报告,可以查看那些配置类生效了,哪些没生效
//日志文件中Negative是不生效的。Positive是生效的
debug=true
添加@Data注解,就可以自动为已有属性生成getset方法。
添加@ToString注解,可以自动生成toString方法,代码不会显示,但是编译的时候会自动编译方法。
@NoArgsConstructor//无参构造器
@AllArgsConstructor//有参构造器
@EqualsAndHashCode//重新Equals和HashCode方法
@Log4j//自动给类中注入日志类,日志记录器
/*
* 使用log.info(“”)会自动向log4j中
* */
开发技巧、Lombok
1. lombok
作用简化javabean开发,有无参构造器,toString、getset方法等简化
1.项目依赖中引入lombok
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
2.安装插件
3.程序中使用即可
添加@Data注解,就可以自动为已有属性生成getset方法。
添加@ToString注解,可以自动生成toString方法,代码不会显示,但是编译的时候会自动编译方法。
@NoArgsConstructor//无参构造器
@AllArgsConstructor//有参构造器
@EqualsAndHashCode//重新Equals和HashCode方法
@Log4j//自动给类中注入日志类,日志记录器
/*
- 使用log.info(“”)会自动向log4j中
- */
可以使界面看着整洁。
2.dev-tools
热部署,热更新(本质是重启项目)
功能热更新,每次修改代码完,不用重新启动,
按住Ctrl+F9(重新编译加载)就能实时生效
1.pom中引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>
Spring Initailizr
自动引入了对应依赖,自动创建好了项目结构,自动创建好了主程序类。自动搭建了架构
- 可以快速创建Springboot应用,在创建的时候界面上使用。
- 勾选之后,会自动导入对应的依赖