SpringBoot随手一记(一)

SpringBoot学习(一)

一、Maven依赖

    <!--   引入父项目依赖,包含了所需大部分jar包的版本号(版本仲裁)等 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.7.RELEASE</version>
        <relativePath/>
    </parent>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

二、SpringBoot的自动配置

SpringBoot自动帮我们配置了以下内容

  1. Tomcat
  2. SpringMVC(引入全套组件,配置常见功能)
  3. Web常见功能 字符编码问题
  4. 默认包结构
  • 主程序(@SpringBootApplication)所在包及其同目录下所有包均可自动识别
  • @SpringBootApplication(scanBasePackages = “com.controller”) 可指定扫描的包
  1. 各种配置拥有默认值
  2. 按需加载所有自动配置项
    springboot所有的自动配置功能都在spring-boot-autoconfiger包里

三、配置Bean

  1. 方式一:使用xml配置的方式
    在这里插入图片描述
    使用此种方式配置的话我们需要为该文件配置路径:
    在主类添加注解@ImportResource(value = {“classpath:***.xml”})
  2. 方式二:使用配置类
  • 新建一个类,添加@Configuration注解,标明此类为配置类
  • 在此类中添加创建对象的方法,并在方法上注明@Bean
@Configuration(proxyBeanMethods = true)
public class MyConfig {
    
    
    //在容器中添加对象 方法名为组件id,返回的对象为注入容器中的实例
    //经bean标签注册后,在容器中会产生该对象单例
    @Bean
    public User user02(){
    
    
        User u = new User("zhangsan");
        u.setPet(Jerry());
        return u;
    }

    @Bean
    public Pet Jerry(){
    
    
        return new Pet("Jerry");
    }
}
  1. 配置类里面使用@Bean标注在方法上给容器注册组件,默认也是单实例
  2. 配置类本身也是组件
  3. proxyBeanMethods:(默认是true)代理bean的方法 根据是否有组件依赖问题来设置,主要看是否要依赖容器中同一对象
    a. Full(proxyBeanMethods = true)全配置,由容器中MyConfig对象调用Jerry()方法时会先从容器中找该对象并返回
    优点:springboot会检查容器,运行速度会降低
    应用场景:配置类组件之间有依赖关系
    b. Lite(proxyBeanMethods = false)轻量级配置,由容器中MyConfig对象调用Jerry()方法时会生成新对象,并不是返回容器中对象
    优点:springboot不会检查容器,运行速度加快
    应用场景:配置类之间无依赖关系

四、部分注解

  1. @Conditional 条件注解在满足条件的情况下向容器中注入对象
    在这里插入图片描述
  2. @Import({User.class, DBHelper.class}) 类型注入,向容器中注入该类型对象
  3. @ImportResource(value = {“classpath:***.xml”}) 原生文件的导入

五、配置绑定

将配置文件中的属性与JavaBean中的属性相绑定,只有注册到容器中的对象才能进行绑定

  1. @EnableConfigurationProperties + @ConfigurationProperties
  2. @Component + @ConfigurationProperties

猜你喜欢

转载自blog.csdn.net/qq_42451178/article/details/112008938