首页 > 代码库 > Spring学习系列(二) 自动化装配Bean
Spring学习系列(二) 自动化装配Bean
一、Spring装配-自动化装配
@Component和@ComponentScan
通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组件扫描默认是不启动的,需要显式的配置Spring,从而命令Spring去寻找带有(@Component)注解的类,并为其创建bean。
1、定义接口
package com.seven.springTest.service; public interface HelloWorldApi { public void sayHello(); }
2、定义接口的实现类
package com.seven.springTest.service.impl; import org.springframework.stereotype.Component; import com.seven.springTest.service.HelloWorldApi; @Component //通过注解指定该类组件类,告知spring要为它创建Bean public class PersonHelloWorld implements HelloWorldApi { @Override public void sayHello() { System.out.println("Hello World,This Is Person!"); } }
3、前面说过了,spring并不能自动启用组件扫描,需要进行显式的配置,这里通过java类来进行显式的配置,定义java配置类HelloWorldConfig,在配置类中我们没有显式的声明任何bean,只不过是使用了@CompontentScan注解来启用组件扫描
package com.seven.springTest; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan // 启用组件扫描 public class HelloWorldConfig { }
现在所有的工作已经完成,我们来测试下
package com.seven.springTest.main; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import com.seven.springTest.HelloWorldConfig; import com.seven.springTest.service.HelloWorldApi; public class HelloWorldTest { public static void main(String[] args) { //1. 声明Spring上下文,采用java配置类 ApplicationContext ac = new AnnotationConfigApplicationContext(HelloWorldConfig.class); //2. 声明Spring应用上下文,采用xml配置 //ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); //通过Spring上下文获取Bean,在这里Spring通过自动扫描发现了PersonHelloWorld的实现,并自动创建bean。 HelloWorldApi hwapi = ac.getBean(HelloWorldApi.class); //通过sayHello()的输入内容可以看到,hwapi为PersonHelloWorld的实例 hwapi.sayHello(); } }
Spring学习系列(二) 自动化装配Bean
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。