SpringBoot

1.什么是SpringBoot以及特点。

1.1简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

1.2特点

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

SpringBoot所具备的特征有:

(1)可以创建独立的Spring应用程序,并且基于其MavenGradle插件,可以创建可执行的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)测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值