Spring IOC创建对象的方式
使用bean去注册类的好处:
spring的ioc控制反转、依赖注入,“控制反转”你不需要再代码中关心何时用new创建类的实例。你用的时候spring会创建这个实例,并且注入到你需要使用的地方。
假如不用spring,你需要在你用到实例的各个地方不停new。交给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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="..." class="...">
<!-- collaboretors and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaboretors and configuration for this bean go here -->
</bean>
</beans>
头部文件说明:https://blog.csdn.net/tanga842428/article/details/78572708?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
https://blog.csdn.net/u012049463/article/details/11807587?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param
2. 类、bean文件和测试类
类如下
package com.XX;
public class User { private String name;
//使用无参构造,默认 public User(){ system.out. println("user的无参构造") } public string getName()( return name; } public void setName(String name){ this name = name; } public void show(){ System.out. println("nane="+name); }
bean文件如下:
<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="user" class="package com.XX.User">
//id后就是对象起的名字,class就是类全名(路径)
<property name="name" value="XZY">
//name就是对应类的属性名字,value就是普通属性之间指定属性值,
</bean>
</beans>
测试类如下:
import com.XX.User;
import org.springframework.context.Applicationcontext; import org.springframework.context.support.ClassPathXmlApplicationContext:
public class MyTest{ public static void main(String(] args)(
//创建容器对象 ApplicationContext context = new ClassPathXmlApplicationContext(configLocation:"beans.xml") User user = (User) context.getBean( s:"user") user show ();
}
}
有参构造函数的bean文件写法:
<!-- 第一种,下标值! -->
<bean id="user" cLass="com.XX.User"> <constructor-arg index="0" value=”值”/> </bean>
<!-- 第二种方式:通过类型创建,不建议使用。因为可能有多个参数 -->
<bean id="user" cLass="com.XX.User">
<constructor-arg type="java.Lang.String" vaLue="值/>
</bean>
<!-- 第三种,直按过参数名来设置-->
<bean id="user" class="com.XX.User">
<constructor-arg name="name" value="值"/>
</bean>
补充bean文件里的配置: