代码编织梦想

一、组件添加

1、@configuration

        标记类为配置类,配置类中为方法加上@Bean注解给容器注册组件,默认为单实例。配置类也会注册组件。

        @configuration的属性: 

        proxyBeanMethods:代理bean的方法
Full(proxyBeanMethods = true)

【保证每个@Bean方法被调用多少次返回的组件都是单实例的,外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实例对象,SpringBoot总会检查这个组件是否在容器中有】

Lite(proxyBeanMethods = false)

【每个@Bean方法被调用多少次返回的组件都是新创建的】
组件依赖必须使用Full模式默认。其他默认是否Lite模式

2、@Bean、@Component、@Controller、@Service、@Repository

        在Stereotype(旧规矩)模式下,Spring为Controller-Service-Dao的分层模型分别提供了@Controller、@Service、@Repository注解,除此之外的组件使用@Component注解。

3、@ComponentScan、@Import

        在配置类中使用。

@ComponentScan:将指定包的组件注入容器

@Import:将指定类注入容器

4、@Conditional

条件装配:满足Conditional指定的条件,则进行组件注入

5、@ImportResource

原生配置文件引入,在xml文件中配置组件,并通过@ImportResource注解注入IOC容器

6、配置绑定

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ConfigurationProperties {
    @AliasFor("prefix")
    String value() default "";

    @AliasFor("value")
    String prefix() default "";

    boolean ignoreInvalidFields() default false;

    boolean ignoreUnknownFields() default true;
}

/**
 * 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
 */
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {

    private String brand;
    private Integer 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;
    }

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

  • @Component + @ConfigurationProperties

  • @EnableConfigurationProperties + @ConfigurationPropertie

@Import({User.class, DBHelper.class})
@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件
public class MyConfig {
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_62331017/article/details/128859778

SpringBoot快速入门学习-爱代码爱编程

文章目录 一、快速入门1. 创建项目1. spring initializr创建2. IntelliJ IDEA创建2、编写第一个测试案例二、pom.xml依赖三、主程序类分析@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@AutoConfiguratio

SpringBoot核心功能-爱代码爱编程

  学习今日内容,必备基础知识: Spring的对象ioc容器:new ClassPathXMLApplicationContext()、@Value、@Configuration SpringMVC:@RestController、@RequestMapping Maven知识:依赖传递、依赖管理(BOM,Bill of Materia

springboot项目层次结构_SpringBoot项目结构及功能-爱代码爱编程

经过一段时间的学习,逐渐揭开了SpringBoot的面纱,接下来对其做一个总结。 SpringBoot是简化Spring应用开发的一个框架,整个Spring技术栈的一个大整合,J2EE开发的一站式解决方案;它的特点是约定大于配置,其内部简化了大部分配置。通过pom.xml配置文件,可以很轻松的添加需要的依赖,启动器等。 在IntelliJ使用 Sp

SpringBoot2——容器功能-爱代码爱编程

本篇文章将学习SpringBoot2中的容器功能,何为容器呢? 在学习Spring时有讲过IOC容器,Spring会帮我们创建好对象存储在IOC容器中,这也是创建对象的另一种方式 组件添加 1、@Configuration @Configuration的作用是告诉SpringBoot这是一个配置类,相当于Spring中的xml配置文件,在xml配置

SpringBoot简单学习总结-爱代码爱编程

文章目录 SpringBoot简单学习总结前言SpringBoot构建方式(以SpringMVC为例)SpringBoot优点(以SpringMVC为例)SpringBoot中的配置文件配置文件的格式配置文件名称yml配置详解配置文件读取,此后几乎都是使用yml配置格式多环境开发多模块开发问题==配置文件四级分类==idea工具中配置文件不提示问题

四、SpringBoot源码学习--容器的刷新-加载bean-爱代码爱编程

SpringBoot通过ConfigurableApplicationContext的run方法对应用服务进行启动,在run方法中调用ConfigurableApplicationContext类的refreshContext方法实现容器对bean的加载。 一、 实现bean加载的方法:refresh() 容器对bean的加载主要是在实现了Config

SpringBoot学习路线-爱代码爱编程

SpringBoot 第一章Xml和JavaConfig 1、为什么要使用springboot ​ 因为spring、springmvc需要使用大量的配置文件(xml文件),还需要配置各种对象,把使用的对象放入到spring容器中才能使用对象,需要了解其他框架配置规则 2、springboot就相当于不需要配置文件的spring+springmvc

SpringBoot学习笔记-爱代码爱编程

目录 一、什么是SpringBoot 1.1、什么是springboot 1.2、可以做什么 1.3、工程使用特点 1.4、优点 1.5、为什么要使用SpringBoot 二、SpringBoot快速搭建 2.1、环境准备 2.2、创建SpringBoot工程 2.3、端口配置 三、Spring Boot配置文件和自动配置原理 3.

springboot注解原理学习-爱代码爱编程

springboot注解原理学习 文章目录 springboot注解原理学习@[toc]1. @Configuration与@Bean注解2. @ComponentScan注解与@Component、@Controller、@Service、@Repository @Configuration3.@Import4.@Conditional5

springboot学习笔记_只会写bug的靓仔的博客-爱代码爱编程

Springboot学习笔记 ● 1:springboot是什么?我们为什么要学习? ● 2:springboot相对于传统ssm框架的优势 ● 3:springboot的依赖管理 ● 4:javaConfig的相关 ● 5:springboot的底层注解 ● 6:properties和yml配置文件的作用和区别 ● 7:springboot

springboot二:容器功能(和spring相关)_e_nanxu的博客-爱代码爱编程

容器功能 目的: 为了深入理解springboot的自动配置原理,需要先了解springboot的部分底层注解 容器功能相关的注解汇总 注解名称功能1@Configuration标注该类为配置类2@Bean标注在方法上,通过方法添加组件,常用于导入第三包中的组件3@Compont添加普通组件4@Controller添加控制类组件5@Servi

springboot、springcloud学习教程_飘飞的焰火的博客-爱代码爱编程

SpringBoot、SpringCloud学习历程 1.架构的演变 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是

spring和springboot学习_天才小熊猫啊的博客-爱代码爱编程

Spring的两个核心特性:依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP) 第1章 Spring之旅 Spring的使命:简化Java开发 为了降低Java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程;通过