成都网站建设设计

将想法与焦点和您一起共享

Spring容器中怎么添加组件

今天就跟大家聊聊有关Spring容器中怎么添加组件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

目前创新互联公司已为上千多家的企业提供了网站建设、域名、虚拟主机成都网站托管、企业网站设计、黔西网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

建个TestBean类

public class TestService {}

新建一个beans.xml,写一个service的bean配置

 

然后可以Application类里直接引用,也可以加载Configuration配置类上面

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.ImportResource;@SpringBootApplication@ImportResource(locations = {"classpath:beans.xml"})public class SpringbootPropertiesConfigApplication { public static void main(String[] args) { SpringApplication.run(SpringbootPropertiesConfigApplication.class, args); }}

Junit测试类:

import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.context.ApplicationContext;@SpringBootTestclass SpringbootPropertiesConfigApplicationTests { //装载ioc容器 @Autowired ApplicationContext ioc; @Test void contextLoads() { //测试这个bean是否已经加载到Spring容器 boolean flag = ioc.containsBean("testService"); System.out.println(flag); }}

经过测试,返回的是true,ok,换Springboot注解的方式实现

新建一个PropertiesConfig配置类,注意:组件的id就是方法名

import com.example.springboot.properties.service.TestService;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration //@Configuration注解实践上也是一个Componentpublic class PerpertiesConfig { //通过@Bean注解将组件添加到Spring容器,组件的id就是方法名  @Bean  public TestService testService1(){    return new TestService();  }}

Junit测试继续:

import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.context.ApplicationContext;@SpringBootTestclass SpringbootPropertiesConfigApplicationTests { @Autowired ApplicationContext ioc; @Test void contextLoads() { //传方法名testService1 boolean flag = ioc.containsBean("testService1"); System.out.println(flag); }}

Junit测试,返回的还是TRUE,如果改下name为testService就是返回FALSE的,因为组件名称就是@Bean注解对应的方法名

其实以前写Spring项目的时候,很显然也可以用@Service或者@Controller注解将组件添加到容器里,如果你去点一下源码,其实这些注解都有一个共同点就是都引入了@Component注解,而本博客介绍的@Configuration注解,本质上也是引入了@Component注解,而@Bean是没有引入的,所以,如果你只加@Bean,而不加@Configuration注解的情况,是不可以将组件添加到Spring容器的

看完上述内容,你们对Spring容器中怎么添加组件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网站标题:Spring容器中怎么添加组件
URL链接:http://chengdu.cdxwcx.cn/article/jgsdsd.html