Spring获取JavaBean的xml形式和注解形式
文章目录
- 一、用xml文件方式管理JavaBean
- 1. 创建一个xml配置文件
- 2. 将一个Bean交由spring创建并管理
- 3. 获取Spring上下文,获取bean
- 二、用注解获取Javabean
- 1. 创建一个class配置java文件
- 2. 将一个bean交由Spring创建并管理
- 3. 获取Spring上下文,后去Javabean
- 总结:都是初始化Spring上下文获取Javabean
- 三、获取Javabean对比
- 四、简化注解获取Javabean
- 1.在javabean类上添加@Component注解
- 2. 在配置java类上添加@ComponentScan注解,value 属性设置Spring扫描那些bean
- 3. 初始化Spring上下文,获取bean就可以了
一、用xml文件方式管理JavaBean
1. 创建一个xml配置文件
2. 将一个Bean交由spring创建并管理
<!--1. 创建一个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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--2. 将一个Bean交由spring创建并管理--><bean id="javaBean" class="com.gblfy.ioc.JavaBean"/>
</beans>
注:用id作为bean的唯一标识 用class来指定这个bean是哪个类
3. 获取Spring上下文,获取bean
ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
获取bean
JavaBean javaBean = context.getBean("javaBean",JavaBean.class);
二、用注解获取Javabean
1. 创建一个class配置java文件
2. 将一个bean交由Spring创建并管理
//1 .创建一个class配置java文件
@Configuration
public class Configuation {//2. 将一个bean交由Spring创建并管理@Bean(value = "bean2")public JavaBean javaBean(){return new JavaBean();}
}
3. 获取Spring上下文,后去Javabean
//3. 获取Spring上下文ApplicationContext context =new AnnotationConfigApplicationContext(Configuation.class);//获取 BeanJavaBean javaBean = context.getBean("javaBean",JavaBean.class);System.out.println("javaBean"+javaBean);
总结:都是初始化Spring上下文获取Javabean
三、获取Javabean对比
上面只是由xml形式获取Javabean变成了注解形式,但是,代码量没有减少,那如何简化呢?
四、简化注解获取Javabean
1.在javabean类上添加@Component注解
@Component
public class JavaBean { }
2. 在配置java类上添加@ComponentScan注解,value 属性设置Spring扫描那些bean
//创建一个class配置java文件
@Configuration
@ComponentScan(value = "com.gblfy.ioc")
public class Configuation { }
3. 初始化Spring上下文,获取bean就可以了
//获取Spring上下文ApplicationContext context =new AnnotationConfigApplicationContext(Configuation.class);//huoqu BeanJavaBean javaBean = context.getBean("javaBean",JavaBean.class);System.out.println("javaBean"+javaBean);
原理:通过@ComponentScan注解来告知Spring,让Spring扫描这个包结构下的所有class
那么扫描的原则是什么呢?
扫描原则:在刚才包结构下类上有@Component注解的class,这些class将交由Spring来管理,并由Spring来为我们实例化这些class的Javabean。
Javabean的id默认为类名小写,如果,想自定义bean的id在@Component的value 属性中添加value即可;
@Component(value = "javaBeanId")
public class JavaBean { }
配置包扫描,在类上添加注解,就可以交由Spring来管理,并进行实例化
注解:
注解位置 | 注解名称 |
---|---|
controller层 | @Controller |
service层 | @Service |
持久层 | @Repository |
其它层 | @Component |
依赖附上
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.1.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.8.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>