springBoot学习总结 上

本文详细介绍了Spring Boot的基础知识,包括它的背景、好处、环境搭建步骤、首个HelloWorld程序的实现,以及自动配置和配置文件的使用。Spring Boot简化了Spring应用的开发,通过自动配置和起步依赖减少了配置工作,提供了快速开发一站式解决方案。
摘要由CSDN通过智能技术生成

目录

一背景介绍:

1.1

二、好处用途

三、环境搭建

三、实践

第一个springBoot程序 helloworld 

@SpringBootConfiguration标注在某个类上 ,表示这是一个springboot配置类

@EnableAutoConfiguration开启自动配置功能: 以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样自动配置才能生效﹔

@AutoConfigurationPackage自动配置包:@lmporIAutoConfigurationPackages.Registrar.class) :Spring的底层注解@lmport,给容器中导入一个组件;AutoConfigurationpackage

五、配置文件 

2、YAML基本语法

3、例子

一、加载自定义配置文件

三。占位符

四、多个profile配置文件

五、配置文件加载位置以及优先级

​编辑

六、自动配置文件原理


一背景介绍:

1.1

 简化Spring应用开发的一个框架;
整个Spring技术栈的一个大整合;
J2EE开发的一站式解决方案;

二、好处用途


1 自动配置        不需要在关注各个框架的整合配置 springBoot 全部已经配置好了
2起步依赖          我们在需要使用某个框架的时候,直接添加这个框架的启动器依赖即可 ,不需要在关注jar包的冲突和整合


设计目的:用来简化Spring 应用的初始化搭建以及开发过程
从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目所使用。它使用“习惯优于配置”的理念让你的项目快速运行起来。spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架,总结一下及几点:
(1)为所有Spring开发提供一个更快更广泛的入门体验。
(2)零配置。无冗余代码生成和XML强制配置,遵循“约定大于配置”。
(3)集成了大呈常用的第三方库的配置,Spring Boot应用为这些第三方库提供了几乎可以零配置的开箱即用的能力。
(4)提供一系列大型项目常用的非功能性特征。如嵌入服务器等。
 

三、环境搭建

一、MAven设置:
给maven 的settings.xml配置文件的profiles标签添加

二、IDEA设置

三、实践

第一个springBoot程序 helloworld 

(1)实验步骤

1、创建一个maven工程 (jar)

2、导入spring Boot相关的依赖

 3、编写一个主程序:启动spring boot应用

//来标注一个主程序类
@SpringBootApplication
public class Springboot01helloworldApplication {

    public static void main(String[] args) {
        SpringApplication.run(Springboot01helloworldApplication.class, args);
    }


}

4编写相关的Controller 、Service

/**
 * @author chao
 * @create -07-2022-07-07-16:55
 */
@ResponseBody
//这个类的所有方法返回的数据写个浏览器
@Controller
//@RestController
public class HelloController {

    @RequestMapping("/hello")  //发送http://localhost:8080/hello
    public  String hello(){
        return  "hello world controller";
    }

}

5、运行主程序测试
6简化部署

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

四、helloworld 探究

 spring-boot-starter : spring-boot场景启动器﹔帮我们导入了web模块正常运行所依赖的组件;
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器

springboot 将所用的功能场景都抽取出来,做成一个个starters(启动器) 只需要在项目中引入这些starters依赖包就会自动导入进来


@SpringBootConfiguration
标注在某个类上 ,表示这是一个springboot配置类

    @Configuration
  配置类 --配置文件  配置类也是一个组建 -@Component

@EnableAutoConfiguration
开启自动配置功能: 以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉
SpringBoot开启自动配置功能;这样自动配置才能生效﹔

@AutoConfigurationPackage
自动配置包:@lmporIAutoConfigurationPackages.Registrar.class) :Spring的底层注解@lmport,给容器中导入一个组件;AutoConfigurationpackage

@ConfigurationProperties(prefix = "person")  //默认从全局配置文件获取值


@PropertySource(value = {"classpath:person.properties"})   加载指定的配置文件

ImportResource   导入spring配置文件 让配置文件里面的内容生效

springBoot里面没有Spring的配置文件 我们自己编写的配置文件也不能自动识别 想让spring的配置文件生效加载进来需要引入ImportResource注解

在主配置文件写上
@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
public class SpringBoot02ConfigApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBoot02ConfigApplication.class, args);
    }

}


springBoot推荐给容器中添加组建的方式:
1配置类
/指明当前类是一个配置类
@Configuration
public class MyAppConfig {
}

//指明当前类是一个配置类    不再使用//@ImportResource(locations = {"classpath:beans.xml"})方式

五、配置文件 

2、YAML基本语法

3、例子

spring:
  datasource:
     username: root
     password:

 

3、配置文件值·注入 yml

 配置文件 properties

#spring.profiles.active=dev
person.last-name=张三${random.uuid}
person.age=${random.int}
person.birth=217/12/12
person.boss=false
person.map.k1=v1
person.map.k2=v2
person.lists=a,b,c
person.dog.name=${person.hello:hello}_dog
person.dog.age=15
person.dog=dog

javabean程序

将配置文件中的每一个属性的值 映射到这个组建中
 * ConfigurationProperties
 */
//@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix = "person")  //默认从全局配置文件获取值
public class Person {

    private  String lastName;
    private  Integer age;
    private  Boolean boss;
    private Date birth;

    private Map<String ,Object> map;

    private List<Object>lists;

    private  Dog dog;


    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Boolean getBoss() {
        return boss;
    }

    public void setBoss(Boolean boss) {
        this.boss = boss;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Map<String, Object> getMap() {
        return map;
    }

    public void setMap(Map<String, Object> map) {
        this.map = map;
    }

    public List<Object> getLists() {
        return lists;
    }

    public void setLists(List<Object> lists) {
        this.lists = lists;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", map=" + map +
                ", lists=" + lists +
                ", dog=" + dog +
                '}';
    }


}

 如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value ;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

 特殊属性注解

一、加载自定义配置文件

 

二、给容器中添加组建

**
 * @author chao
 * @create -07-2022-07-08-9:38
 */

//指明当前类是一个配置类    不再使用//@ImportResource(locations = {"classpath:beans.xml"})方式
@Configuration
public class MyAppConfig {

    //将方法返回值添加到容器中
    @Bean
    public HelloService helloService(){
        System.out.println("给容器中添加组建了");
        return  new HelloService();
    }
}

三。占位符

#spring.profiles.active=dev
person.last-name=张三${random.uuid}
person.age=${random.int}
person.birth=217/12/12
person.boss=false
person.map.k1=v1
person.map.k2=v2
person.lists=a,b,c
person.dog.name=${person.hello:hello}_dog
person.dog.age=15
person.dog=dog

四、多个profile配置文件

我们在主配置文件编写的时候,文件名可以是application-{profile}.properties/yml默认使用application.properties的配置;

五、配置文件加载位置以及优先级

例如我当前项目

 我们在主配置文件编写的时候文件名可以是application-{profile}。properties 

3方式三 ;虚拟机参数

六、自动配置文件原理

 一但这个配置类生效;这个配置类就会给容器中添加各种组件﹔这些组件的属性是从对应的properties类中获取的,这些类里面的每一个属性又是和配置文件绑定的;

精髓∶
1 ).SpringBoot启动会加载大量的自动配置类
2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值