1.什么是SpringBoot以及特点。
1.1简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
1.2特点
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
总结:springboot:----为了简化spring工程的初始化搭建和开发过程。
2.快速搭建springboot工程
(1)
(2)
(3)
在主类所在的包下创建controller包并在该包下创建一个HelloController类
@RestController //标记改类为controller并且该类中所有方法的返回值为json格式。
public class HelloController {
@GetMapping("hello") //思考: 没有引入jackson依赖
public Map<String,Object> hello(){
Map<String,Object> map=new HashMap<>();
map.put("name","李世民");
map.put("age",26);
return map;
}
}
启动主函数。
浏览访问HelloContnroller下的路径资源
3.了解pom.xml以及配置文件
pom.xml
<!--继承springboot父工程:该工程中的主要作用:对jar的版本管理-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
application.properties
#Tomcat端口号[] key=value
server.port=7777
# 设置工程的上下文路径
server.servlet.context-path=/aaa
4.springboot的配置文件种类
properties:属性文件类型: 格式 key=value格式
#Tomcat端口号[] key=value
server.port=7777
# 设置工程的上下文路径
server.servlet.context-path=/aaa
yml:文件类型: 格式:
server:
port: 8081
servlet:
context-path: /bbb
#如果yml和properties都存在相同的配置,则以properties为主, 如果两个配置文件的内部不同。则合并。#不管是那种格式,他们的名称必须叫:application
5.java读取springboot配置文件的内容。
读取配置文件内容的方式:
第一种: @Value读取
application.properties
student.name=zhangsan
student.age=18
student.address=beijing
controller:
@RestController
public class HelloController {
@Value("${student.name}")
private String name;
@Value("${student.age}")
private Integer age;
@Value("${student.address}")
private String address;
@GetMapping("index")
public String index() {
return "姓名--" + name + ";年龄--" + age + ";地址--" + address;
}
}
运行结果:
第二种: @ConfigurationProperties(prefix="前缀") ---类
application.properties
student.name=zhangsan
student.age=18
student.address=beijing
student.hobby[0]=swimming;
student.hobby[1]=eating;
student.hobby[2]=sleeping;
student.map.k1=v1
student.map.k2=v2
student.map.k3=v3
controller:
@RestController
public class HelloController {
@Autowired
private Student student;
@GetMapping("main")
public Student main(){
return student;
}
}
student:
@ConfigurationProperties(prefix = "student")
@Data
@Component//有spring容器帮你创建该类的对象,并把读取到配置文件中以student开头的内容配置给相应的属性
public class Student {
private String name;
private Integer age;
private String address;//属性名要和配置文件中的名称相同
private List<String> hobby;
private Map<String,Object> map;
}
运行结果:
==注意:第一种方式只能读取(基本类型和字符串类型) 第二种方式可以读取任意类型。==
在线转yml格式 https://www.toyaml.com/index.html
6.springboot多环境开发配置
环境: (1)开发环境 (2)测试环境 (3)生产环境【线上环境】
由于环境的不同,可能它们的配置也会不同。
(1)application-dev.properties
#针对关于开发的配置内容
server.port=8001
(2) application-test.properties
#针对关于测试环境的配置内容
server.port=8002
(3)application-online.properties
#针对关于线上环境的配置内容---
server.port=8003
application.properties
# 不同环境公共配置可以写在application
student.name=zhangsan
student.age=18
student.address=beijing
student.hobby[0]=swing
student.hobby[1]=eating
student.hobby[2]=sleeping
student.map.k1=v1
student.map.k2=v2
student.map.k3=v3
#激活相应的环境配置---每个环境的文件配置名必须:application-xxx.properties
spring.profiles.active=dev
7.springboot注册web三大组件
web中的三大组件. servlet filter过滤器 Listener监听器
由于springboot没有web.xml文件了,有时我们需要把第三方的servlet注册到springboot中。讲解shiro安全框架
7.1注册servlet到springboot内置tomcat中
(1)创建一个servlet类
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("************************************************");
}
}
(2)创建一个配置类
@Configuration //等价于xml配置文件
public class MyConfig {
@Bean//等于xml配置文件<bean/> ServletRegistrationBean该类用于注册servlet到tomcat容器中
public ServletRegistrationBean<Servlet> registrationBean(){
ServletRegistrationBean<Servlet> registrationBean = new ServletRegistrationBean<>();
registrationBean.setName("my");
registrationBean.setServlet(new MyServlet());
registrationBean.addUrlMappings("/my");
return registrationBean;
}
}
(3)测试