栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2022-1-29 开始SpringBoot&自动配置原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022-1-29 开始SpringBoot&自动配置原理

文章目录

一、helloworld二、自动配置原理

1. SpringBoot特点

1.1 依赖管理1.2 自动配置 2. 容器功能

组件添加配置绑定

一、helloworld

官方文档

    创建maven工程引入parent和依赖
    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.3
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
    
    主程序
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}

    controller
package org.kk.boot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;


//@Controller
//@ResponseBody
    @RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello world";
    }
}

    启动主程序

    在resource下可以创建配置文件 application.properties ,该配置文件可以修改tomcat、springmvc的一些设置
    比如:server.port=9090

    创建可执行jar包
    引入插件:


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    


maven-build-package进行打包
在target文件夹中。

进入target文件夹,执行jar包即可。

java -jar boot-01-helloworld-1.0-SNAPSHOT.jar

就可以启动了!直接在目标服务器执行

二、自动配置原理 1. SpringBoot特点 1.1 依赖管理

父项目作依赖管理,几乎声明了所有开发中常用的jar版本号,因此在写依赖的时候不需要版本号了。 自动版本仲裁机制

可以自定义修改版本:


	5.1.43

开发导入starter场景启动器
见到很多 spring-boot-starter-*
*代表某种场景
只要引入starter,这个场景的所有常规需要的依赖都自动引入


所有场景启动器最底层的依赖:spring-boot-starter

1.2 自动配置

自动配好tomcat:引入Tomcat、配置Tomcat
自动配好SpringMVC全套组件
主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来,无需以前的包扫描
各种配置都有默认值
按需加载配置项

2. 容器功能 组件添加
    @Configuration 和@bean@Bean、@Component、@Controller、@Service、@Repository@import
    @import({User.class, DBHelper.class})

 给容器中自动创建出这两个类型的组件、默认组件的名字就是全类名
@import({User.class, DBHelper.class})
@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件
public class MyConfig {
}

    @Conditional
    满足condition指定的条件进行组件注入

    将resource下的xml文件导入(针对老项目)
    @importResource(“classpath:beans.xml”)

配置绑定

eg. Car类

package org.kk.boot.bean;


public class Car {
    private String brand;
    private Integer price;

    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + ''' +
                ", price=" + price +
                '}';
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }
}

现在想把Car有关的东西放到配置文件里:

mycar.brand=byd
mycar.price=100000

放入容器中并使用@ConfigurationProperties

@Component
@ConfigurationProperties(prefix = "mycar")

测试:controller:

        @Autowired
        Car car;

        @GetMapping("/car")
        public Car car(){
            return car;
        }

也可以再配置文件中写这个注解: @EnableConfigurationProperties(Car.class)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号