[Spring]配置简单Bean详解
来源:互联网 发布:大数据开发面试题 编辑:程序博客网 时间:2024/05/01 23:46
IOC&DI即控制反转与依赖注入。是Spring的一大特性。
BeanFactory为Spring实现IOC的接口,可以将BeanFactory看作IOC容器。由于BeanFactory有相关缺陷,衍生出更强大的子接口,ApplicationContext为BeanFactory子接口。
下面对IOC的使用进行详解
首先为Bean
public class User { private String name; private int age; public User() { super(); } public User(int age) { super(); this.age = age; } public User(String name) { super(); this.name = name; } public User(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; }}
public class Student { private String id; private User user; public Student() { super(); } public Student(String id, User user) { super(); this.id = id; this.user = user; } public String getId() { return id; } public void setId(String id) { this.id = id; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String toString() { return "Student [id=" + id + ", user=" + user + "]"; }}
然后创建applicationContext.xml对Bean进行配置
一个<bean>标签意味着要向IOC容器中注入一个类。注入主要分为两种方式: - 构造器注入 - set方法注入
例1
<!-- property:指定属性名进行set注入 --> <bean id="user" class="spring.bean.User"> <property name="name" value="konaji"></property> <property name="age" value="30"></property> </bean> public static void test1 (){ /** * ApplicationContext : Spring的IOC容器 * ClassPathXmlApplicationContext为IOC的实现类之一,读取的XML配置的Bean */ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = (User) context.getBean("user"); //User [name=konaji, age=30] }
例2
<!-- constructor-arg:根据构造进行注入 --> <bean id="user1" class="spring.bean.User"> <constructor-arg value="konaji"></constructor-arg> </bean> public static void test2 (){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = (User) context.getBean("user1"); //User [name=konaji, age=0] }
例3
<!-- constructor-arg:type:指定构造的类型 应用场景:构造方法(String s1,String s2,int i) 不指定type,会分别将konaji,20赋值给s1,s2 指定type,会分别将konaji,20赋值给s1,i --> <bean id="user2" class="spring.bean.User"> <constructor-arg value="konaji" type="java.lang.String"></constructor-arg> <constructor-arg value="20" type="int"></constructor-arg> </bean> public static void test3 (){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = (User) context.getBean("user2"); //User [name=konaji, age=20] }
例4
<!-- constructor-arg:index:指定构造方法中属性的位置 应用场景:构造方法(String s1,String s2,int i) 不指定index,会分别将konaji,20赋值给s1,s2 指定index,会分别将konaji,20赋值给s1,i --> <bean id="user3" class="spring.bean.User"> <constructor-arg value="konaji" index="0"></constructor-arg> <constructor-arg value="20" index="1"></constructor-arg> </bean> public static void test4 (){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = (User) context.getBean("user3"); //User [name=konaji, age=20] }
例5
<!-- 当类属性为另一个类时,可以使用ref,指向XML中配置的类ID进行注入 --> <bean id="student" class="spring.bean.Student"> <property name="id" value="10000"></property> <!-- user3指向前面配置的id为user3的bean --> <property name="User" ref="user3"></property> </bean> public static void test5 (){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Student student = (Student) context.getBean("student"); //Student [id=10000, user=User [name=konaji, age=20]] }
例6
<!-- 当类属性为另一个类时,可以使用ref,指向XML中配置的类ID进行注入 --> <bean id="student1" class="spring.bean.Student"> <constructor-arg value="10000"></constructor-arg> <!-- user3指向前面配置的id为user3的bean --> <constructor-arg ref="user3"></constructor-arg> </bean> public static void test6 (){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Student student = (Student) context.getBean("student1"); //Student [id=10000, user=User [name=konaji, age=20]] }
1 0
- [Spring]配置简单Bean详解
- [Spring]配置集合Bean详解
- spring中bean的配置详解
- spring中bean的配置详解
- spring基本配置详解(属性bean的基本配置)
- Spring简单配置-基于工厂模式装载bean
- (一)spring的bean简单的配置
- 重拾Spring之配置bean详解以及AppliactionContext基本功能
- Spring之依赖注入(IOC、DI)详解---配置Bean
- Spring中bean.xml的连接池配置问题详解
- spring bean配置文件详解
- Spring Bean生命周期详解
- Spring二 Bean详解
- spring Bean详解
- Spring-Bean生命周期详解
- Spring Bean生命周期详解
- Spring Bean生命周期详解
- Spring Bean详解
- 仿qq自定义滑动开关
- 跨界“抢粮食”
- mysql数据库修改用户密码
- [UC/OS-II原理及应用]μC/OS-Ⅱ在80x86上的移植
- 德国人造车留一手
- [Spring]配置简单Bean详解
- 用Mac打造自己的DNS服务器
- Maven学习笔记(四)-Eclipse创建Maven项目
- H5数据本地存储webStore
- 关于FreeImage的linux版本编译
- android 调用通讯录号码同时进入播号界面
- 拯救地球?错了!
- 处女作
- WebService