实践理解 @Configuration 的使用 和作用

聊透spring @Configuration配置类 本章节我们来探索Spring中一个常用的注解。。那啥是配置类啊,有啥用啊。这个我们得结合实际使用场景来说,通常情况下。加了的配置类内部,都会。为了简化定义,在后续我们称@Bean注解的方法为工厂方法。配置类的奥秘就在这里,Spring会保证多次调用@Bean标注的工厂方法,,这也贯彻了Spring的单例哲学。多次调用创建方法,产生的竟然是同一个对象,这貌似违背了编程的基础原理。怎么可能😱,一定是Spring做了什么,那就跟随着贰师兄的脚步一起解开的神秘面纱吧。 阅读详情

从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

注意:@Configuration注解的配置类有如下要求:

  1. @Configuration不可以是final类型;
  2. @Configuration不可以是匿名类;
  3. 嵌套的configuration必须是静态类。

目录

 一、用@Configuration加载Spring

1.1、@Configuration配置spring并启动spring容器

1.2、@Configuration启动容器+@Bean注册Bean,@Bean下管理bean的生命周期

1.3、@Configuration启动容器+@Component注册Bean

1.4、使用 AnnotationConfigApplicationContext 注册 AppContext 类的两种方法

1.5、配置Web应用程序(web.xml中配置AnnotationConfigApplicationContext) 

1.6、@Configuation总结

二、组合多个配置类 

2.1、在@configuration中引入spring的xml配置文件

 2.2、在@configuration中引入其它注解配置

2.3、@configuration嵌套(嵌套的Configuration必须是静态类)


1.1、@Configuration配置spring并启动spring容器

@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)

package com.example.test.configuration;

import org.springframework.context.annotation.Configuration;

@Configuration
public class TestConfiguration {

    public TestConfiguration(){
        System.out.println("TestConfiguration 容器启动初始化了。。。");
    }
}

测试:

package com.example.test.configuration;

import org.springframework.context.annotation.Configuration;

@Configuration
public class TestConfiguration {

    public TestConfiguration(){
        System.out.println("TestConfiguration 容器启动初始化了。。。");
    }
}

从运行主方法结果可以看出,spring容器已经启动了:

1.2、@Configuration启动容器+@Bean注册Bean,@Bean下管理bean的生命周期

@Bean标注在方法上(返回某个实例的方法),等价于spring的xml配置文件中的<bean>,作用为:注册bean对象

bean类:

package com.example.test.configuration;

public class TestBean {

    private String userName;
    private String url;
    private String password;

    public void sayHello(){
        System.out.println("TestBean sayHello...");
    }

    public void start(){
        System.out.println("TestBean 初始化。。。");
    }

    public void cleanUp(){
        System.out.println("TestBean 销毁。。。");
    }
}

配置类:

package com.example.test.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration
public class TestConfiguration {

    public TestConfiguration(){
        System.out.println("TestConfiguration 容器启动初始化了。。。");
    }
    //@Bean注解注册bean,同时可以指定初始化和销毁方法
    @Bean(name = "testBean",initMethod = "start",destroyMethod = "cleanUp")
    @Scope("prototype")
    public TestBean testBean(){
        return new TestBean();
    }
}

 测试:

package com.example.test.configuration;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestRun {

    public static void main(String[] args) throws InterruptedException {
        //如果加载 spring-context.xml文件:
        //ApplicationContext context=new ClassPathXmlApplicationContext("spring-context.xml");

        //@Configuration 注解的spring容器加载方式,用AnnotationConfigApplicationContext替换ClassPathApplicationContext
        ApplicationContext context=new AnnotationConfigApplicationContext(TestConfiguration.class);

        //获取Bean
        TestBean tb= (TestBean) context.getBean("testBean");
        tb.sayHello();
        System.out.println(tb);

        TestBean tb2= (TestBean) context.getBean("testBean");
        tb2.sayHello();
        System.out.println(tb2);
    }
}

 结果:

 注:
(1)、@Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与标注的方法名相同;
(2)、@Bean注解默认作用域为单例singleton作用域,可通过@Scope(“prototype”)设置为原型作用域;
(3)、既然@Bean的作用是注册bean对象,那么完全可以使用@Component、@Controller、@Service、@Ripository等注解注册bean,当然需要配置@ComponentScan注解进行自动扫描。

@Bean下管理bean的生命周期
可以使用基于 Java 的配置来管理 bean 的生命周期。@Bean 支持两种属性,即 initMethod 和destroyMethod,这些属性可用于定义生命周期方法。在实例化 bean 或即将销毁它时,容器便可调用生命周期方法。生命周期方法也称为回调方法,因为它将由容器调用。使用 @Bean 注释注册的 bean 也支持 JSR-250 规定的标准 @PostConstruct 和 @PreDestroy 注释。

1.3、@Configuration启动容器+@Component注册Bean

Bean类:

package com.example.test.configuration;

import org.springframework.stereotype.Component;
//增加注册bean的注解
@Component
public class TestBean {

    private String userName;
    private String url;
    private String password;

    public void sayHello(){
        System.out.println("TestBean sayHello...");
    }

    public void start(){
        System.out.println("TestBean 初始化。。。");
    }

    public void cleanUp(){
        System.out.println("TestBean 销毁。。。");
    }
}

配置类:

package com.example.test.configuration;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "com.example.test.configuration")
public class TestConfiguration {

    public TestConfiguration(){
        System.out.println("TestConfiguration 容器启动初始化了。。。");
    }
}

 测试:

package com.example.test.configuration;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "com.example.test.configuration")
public class TestConfiguration {

    public TestConfiguration(){
        System.out.println("TestConfiguration 容器启动初始化了。。。");
    }
}

sayHello()方法都被正常调用:

1.4、使用 AnnotationConfigApplicationContext 注册 AppContext 类的两种方法

1.4.1、 配置类的注册方式是将其传递给 AnnotationConfigApplicationContext 构造函数

package com.example.test.configuration;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class TestRun {

    public static void main(String[] args) throws InterruptedException {

        //@Configuration 注解的spring容器加载方式,用AnnotationConfigApplicationContext替换ClassPathApplicationContext
        ApplicationContext context=new AnnotationConfigApplicationContext(TestConfiguration.class);

        TestBean tb = (TestBean) context.getBean("testBean");
        tb.sayHello();
    }
}

1.4.2、 AnnotationConfigApplicationContext 的register 方法传入配置类来注册配置类

package com.example.test.configuration;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class TestRun {

    public static void main(String[] args){

        AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext();
        ctx.register(TestConfiguration.class);
        ctx.refresh();

        TestBean tb = (TestBean) ctx.getBean("testBean");
        tb.sayHello();
    }
}

1.5、配置Web应用程序(web.xml中配置AnnotationConfigApplicationContext) 

过去,您通常要利用 XmlWebApplicationContext 上下文来配置 Spring Web 应用程序,即在 Web 部署描述符文件 web.xml 中指定外部 XML 上下文文件的路径。XMLWebApplicationContext 是 Web 应用程序使用的默认上下文类。以下代码描述了 web.xml 中指向将由 ContextLoaderListener 监听器类载入的外部 XML 上下文文件的元素。

<web-app>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <servlet>
    <servlet-name>sampleServlet</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    </servlet>
 
...
</web-app>

现在,您要将 web.xml 中的上述代码更改为使用 AnnotationConfigApplicationContext 类。切记,XmlWebApplicationContext 是 Spring 为 Web 应用程序使用的默认上下文实现,因此您永远不必在您的web.xml 文件中显式指定这个上下文类。现在,您将使用基于 Java 的配置,因此在配置 Web 应用程序时,需要在web.xml 文件中指定 AnnotationConfigApplicationContext 类。上述代码将修改如下:

<web-app>
    <context-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.
            support.AnnotationConfigWebApplicationContext
        </param-value>
    </context-param>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            demo.AppContext
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <servlet>
    <servlet-name>sampleServlet</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.
            support.AnnotationConfigWebApplicationContext
        </param-value>
    </init-param>
    </servlet>
 
...
</web-app>

1.6、@Configuation总结

@Configuation等价于<Beans></Beans>

@Bean等价于<Bean></Bean>

@ComponentScan等价于<context:component-scan base-package="com.dxz.demo"/>

 


二、组合多个配置类 

2.1、在@configuration中引入spring的xml配置文件

配置类:

package com.example.test.configuration;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;

/**
 * 引入spring的xml配置文件
 */
@Configuration
@ImportResource("classpath:applicationContext-configuration.xml")
public class WebConfig {
}

Bean:

package com.example.test.configuration;

public class TestBean2 {

    private String userName;
    private String url;
    private String password;

    public void sayHello(){
        System.out.println("TestBean2 sayHello...");
    }

    public void start(){
        System.out.println("TestBean2 初始化。。。");
    }

    public void cleanUp(){
        System.out.println("TestBean2 销毁。。。");
    }
}

classpath:applicationContext-configuration.xml :

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

    <bean id="testBean2" class="com.example.test.configuration.TestBean2">

    </bean>
</beans>

测试:

package com.example.test.configuration;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class TestRun {

    public static void main(String[] args){

        AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext();
        ctx.register(WebConfig.class);
        ctx.refresh();

        TestBean2 tb = (TestBean2) ctx.getBean("testBean2");
        tb.sayHello();
    }
}

 结果:

 2.2、在@configuration中引入其它注解配置

配置类:

package com.example.test.configuration;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;

/**
 * 引入spring的xml配置文件
 */
@Configuration
@ImportResource("classpath:applicationContext-configuration.xml")//配置文件
@Import(TestConfiguration.class)//配置类
public class WebConfig {
}

测试:

package com.example.test.configuration;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class TestRun {

    public static void main(String[] args){
        ApplicationContext ctx=new AnnotationConfigApplicationContext(WebConfig.class);

        TestBean tb = (TestBean) ctx.getBean("testBean");
        tb.sayHello();

        TestBean2 tb2 = (TestBean2) ctx.getBean("testBean2");
        tb2.sayHello();
    }
}

结果:

2.3、@configuration嵌套(嵌套的Configuration必须是静态类)

通过配置类嵌套的配置类,达到组合多个配置类的目的。但注意内部类必须是静态类。

配置类:

package com.example.test.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "com.example.test.configuration")  //TestBean 增加了@Component注解
public class TestConfiguration {

    public TestConfiguration(){
        System.out.println("TestConfiguration 容器启动初始化了。。。");
    }

    static class TestConfiguration2{
        @Bean
        TestBean2 testBean2(){
            return new TestBean2();
        }
    }
}

测试类:

package com.example.test.configuration;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class TestRun {

    public static void main(String[] args){
        ApplicationContext ctx=new AnnotationConfigApplicationContext(TestConfiguration.class);

        TestBean tb = (TestBean) ctx.getBean("testBean");
        tb.sayHello();

        TestBean2 tb2 = (TestBean2) ctx.getBean("testBean2");
        tb2.sayHello();
    }
}

结果:

参考文章:https://www.breakyizhan.com/java/14623.html#11 

理解@Configuration和@Component注解的不同用途和作用范围 ​​和​@Component​是Spring框架中常用的注解,它们在作用范围、功能定位和使用场景上有明显的区别。​​注解用于定义配置类和Bean的创建配置,而​@Component​注解用于标识普通的组件类。通过合理的使用这两个注解,我们可以更好地实现依赖注入和组件扫描,提高应用程序的灵活性和可扩展性。 阅读详情

相关推荐

Spring Boot 简单快速回顾:环境搭建与常用注解编程

您可以根据自己的喜好选择其中之一,并按照官方文档(https://maven.apache.org/install.html 或 https://gradle.org/install/)的说明进行安装。步骤 4: 导入项目到集成开发环境(IDE):打开您喜欢的 IDE(例如,IntelliJ IDEA、Eclipse 或 Visual Studio Code),导入先前创建的项目。如果您对特定的主题有更深入的问题,或者需要更多的示例代码,请随时提出,我将很乐意为您提供帮助。

DevRevolt的博客 66

@Configuration的作用(详解)

@Configuration的作用(详解)

qq_63945982的博客 2215

面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题

文章目录1.将一根木棒截成三段,问能够组成三角形的概率;2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率;3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛;4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。 1.将一根木棒截成三段,问能够组成三角形的概率; 来源:https://blog.youkuaiyun.com/weixin_41245919/article/deta

weixin_41558411的博客 4904

@Configuration的使用 和作用

Configuation等价于@Bean等价于@ComponentScan等价于

我是一只蘑菇17的博客 3万+

Docker部署 SRS rtmp/flv流媒体服务器

SRS(Simple Realtime Server)是一款开源的流媒体服务器,具有高性能、高可靠性、高灵活性的特点,能够支持直播、点播、转码等多种流媒体应用场景。SRS 不仅提供了流媒体服务器,还提供了适用于多种平台的客户端 SDK 和在线转码等辅助服务,是一款十分强大的流媒体解决方案。

m0_56659620的博客 4868

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析

本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。

weixin_30505225的博客 507

@Configuration的作用

通过使用Java类来配置应用程序,您可以获得更强的类型安全性,并且可以利用Java的特性,如条件化配置、注解等。注解使您能够将应用程序的配置集中到一个或多个Java类中,以便更好地组织和管理配置信息。注解的主要作用是指示Spring容器,该类是一个配置类,它包含了一个或多个Spring容器所需的bean定义。使用XML配置:如果您不想使用Java配置类,您还可以使用传统的XML配置文件来定义bean。注解用于定义Spring应用程序的配置信息,通常在Java类中进行配置而不是在XML文件中。

思索的涟漪,突破自我 1301

Delphi开发者必备:CEF4Delphi跨平台浏览器嵌入实战指南(含Lazarus适配)

本文详细介绍了Delphi开发者如何利用CEF4Delphi实现跨平台浏览器嵌入,包括环境配置、Lazarus适配、ARM架构优化及Firemonkey集成等实战技巧。通过Chromium引擎的强大功能,开发者可以轻松为传统桌面应用添加现代浏览器特性,提升多平台开发效率。

weixin_29233333的博客 226

【SpringBoot注解】@Configuration详解

作用:告诉SpringBoot这是配置类,相当于以前的配置文件 配置类里面使用@Bean标注在方法上给容器注册组件,默认是单实例的 配置类本身也是组件 @Configuration 注解属性 proxyBeanMethods:代理bean的方法 通过从容器获取组件,即可发现proxyBeanMethods为true时使用的时代理方法。设置张三对象的宠物必须是tom组件,不能每次获取都要重新创建一个组件,此时必须使用Full模式 proxyBeanMe

小鲁蛋的博客 434

【网络与爬虫 41】TLS指纹伪造技术深度解析:ja3、ja4反检测与绕过策略

TLS指纹是现代反爬虫系统的重要检测手段,通过分析客户端TLS握手特征来识别爬虫。本文将深入解析ja3、ja4等TLS指纹技术原理,详细介绍指纹伪造和绕过策略,通过实际代码示例和工具使用,帮助开发者掌握TLS指纹反检测技术,构建更隐蔽的网络爬虫系统。

熵数实验室 1万+

PMP--二模--解题--161-170

A:邀请团队成员在下一次回顾中分享经验。B:请求发起人增加具有所需经验的团队成员。C:在团队内计划知识共享会议。D:请求发起人为团队提供培训课程。A。

stqer的博客 1268

深入解析Spring中的@Configuration与@Bean:Full模式与Lite模式的源码级对比

在Spring框架的演进历程中,基于Java的配置方式逐渐取代了传统的XML配置成为主流方案。这种转变的核心支撑正是和@Bean这对黄金组合,它们构成了现代Spring应用配置的基石。在Spring框架中,@Configuration注解的类支持两种截然不同的工作模式:Full模式(完整模式)和Lite模式(轻量模式)。这两种模式的核心差异体现在Bean方法的调用行为、运行时性能开销以及适用场景上,理解它们的区别对于编写高效、符合预期的Spring配置至关重要。

zuiyuelong的博客 1747

基于ESP32的智能无线广播系统开发博客

通过本项目的开发,我们成功地实现了基于ESP32的智能无线广播系统。该系统不仅具备传统广播的功能,还实现了通过Wi-Fi无线传输音频、实时广播和智能控制等多种先进功能。未来,随着技术的进一步发展,我们还可以扩展更多功能,如智能推荐广播内容、支持语音识别和控制等。希望本项目能够为嵌入式开发人员提供一些思路和参考,帮助大家在实际开发中更好地应用ESP32平台,开发出更加智能和实用的无线广播系统。

2201_76125393的博客 423

Spring常用注解整理说明

文章目录@Configuration作用注意事项(@Configuration注解的类相关)使用方式@Bean @Configuration 作用 用来定义配置类,可以替换xml配置文件 被注解的类中含有一个或多个被@Bean注解的方法,这些方法会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean实例,初始化Spring容器 注意事项(@Configuration注解的类相关)

Dean_xiu的博客 1397

视觉测量实战:C#上位机+OpenCVSharp 实现工业零件尺寸自动检测(精准像素级,工业级可落地)

本次开发的上位机界面遵循工业现场操作规范简洁、直观、按钮大、文字清晰、参数可视化调节,操作人员为车间工人/质检员,无需复杂操作,所有控件均为WinForms原生控件,拖拽即可完成布局本次实战完成了C#上位机+OpenCVSharp 工业零件尺寸自动检测系统的完整开发,这套方案是工业视觉测量的标准落地方案,适配95%的规则几何零件的尺寸检测场景,从五金件、塑胶件到电子元件,全覆盖无死角。测量效率提升100倍、精度提升10倍、无人工误差、可适配流水线实时检测。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 848

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Spring注解目录树

概述 注解主要是针对于spring boot 和spring cloud相关的自动装配,相关注解的理解和实践。 目录

ybbgrain的历程 417

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

深入了解Spring

关于@Configuration注解 添加在类的声明之前,表示这个类是一个“配置类” 如果在AnnotationConfigApplicationContext的构造方法参数中直接使用某个类,则这个类可以不添加@Configuration注解 当然,即使添加了也不会出错 虽然可以不添加,但是,只要类是用于配置的,应该添加 关于@Bean注解 在方法的声明之前,表示该方法是用于创建对象的 @Bean方法定义在配置类中 @Bean方法会在加载配置类时,由框架自动调用 @Bean方法...

qq_52815442的博客 196

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

springboot(一)注解

@Configuration:声明当前类是一个配置类==等同于 spring的xml文件,如果使用了改注解意味着该类里可能有0个或者多个@bean注解,此处没有使用包扫描,是因为所有的@bean 都在次类中定义了。 @ComponentScan:自动扫描包名下所有@Service,@Component @Respositor @Controller的类,并注册为Bean。 @Bean 注...

weixin_30394333的博客 67

spring学习-IOC(八)-配置驱动

背景: 原有的xml方式,仍然需要采用类去加载配置文件 可以使用注解的方式,解决需要手动加载配置的方式 配置类注解 @Configuration:注册一个配置类 该注解就是标识了这个类为配置类,便于进行扫描 如果用AnnotationConfigApplicationContext指定扫描该类,则该注解可以不写 @ComponentScan:扫描类路径 @Bean:用于将当前方法的返回值,作为bean对象,存入spring容器中 bean id的默认值是当前方法名 如果@Bean修饰的..

zhaole524的专栏 239

spring中Bean的注入方式

关于IOC的概念:IOC即控制反转,也称为依赖注入,是指将对象的创建或者依赖关系的引用从具体的对象控制转为框架或者IOC容器来完成,也就是依赖对象的获得被反转了。 可以简单理解为原来由我们来创建对象,现在由Spring来创建并控制对象。 xml 方式 刚接触Spring的时候,用的还是SSH框架,不知道大家对这个还有印象吗?所有的bean的注入得依靠xml文件来完成。 它的注入方式分为:set方法注入、构造方法注入、字段注入,而注入类型分为值类型注入(8种基本数据类型)和引用类型注入(将依赖对象注入)。 以

六六的小帅的博客 579

SpringBoot注解分析

标记一个方法为测试用例,供测试框架(如JUnit 4/5、TestNG)自动识别并执行,用于验证代码逻辑正确性。

2503_93322796的博客 141

常用注解总结(Spring+SpringMVC+mybatis+SpringBoot)

Java配置类: ​ @Configuration:配置类,相当于xml形式的Spring配置(类上) ​ @Bean :声明当前方法的返回值为一个bean,替代xml中的方式(方法上) ​ @ComponentScan :用于对Component进行扫描,相当于xml中的(类上) ​ @Value :为属性注入值 Spring: ​ @Component :组件,没有明确的角色 ​ @Service :在业务逻辑层使用(service层) ​ @Repository:在数据访问层使用(dao层) ​ @C

user_name_优快云的博客 299

@component注解与@Configuration的理解

@component注解与@Configuration的理解 首先来解释下@Configuration在来解释@component再来讲述两者的区别 @Configuration 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationConte...

baidu_41634343的博客 1万+

@Configuration和@Bean的用法和理解

Spring Boot提倡约定优于配置,如何将类的生命周期交给spring 1、第一种自己写的类,Controller,Service。 用@controller @service即可 2、第二种,集成其它框架,比如集成shiro权限框架,集成mybatis分页插件PageHelper,第三方框架的核心类都要交于Spring大管家管理 @Configuration可理解为用spring的时候

刘伊凡2.0 6万+
上一篇: B-Tree 与 B+Tree 讲解推荐
下一篇: 学习springBoot定时任务小项目
程序员楂楂
博客等级 码龄9年 17粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值