三、HelloSpring
配置文件
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用spring创建对象,在spring中这些都称之为bean-->
<!--
bean 相当于 对象 new 对象
id 相当于 变量名
class 相当于 全限定
property 相当于 给对象中的属性赋初始值
value
-->
<bean id="hello" class="cn.imut.pojo.Hello">
<property name="str" value="Spring"/>
</bean>
</beans>c
测试
public class MyTest {
public static void main(String[] args) {
//用xml加载必须使用(获取Spring的上下文对象)
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//我们的对象都在Spring中管理了,若要使用,直接取出即可
Hello hello = (Hello) context.getBean("hello");
System.out.println(hello.toString());
}
}
- Hello是由Spring创建的
- hello对象的属性是由Spring容器设置的
这个过程称之为控制反转
控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建,使用Spring后,对象由Spring来创建!
反转:程序本身不创建对象,而变成被动的接收对象。
依赖注入:就是利用Set方法来进行注入的。
IOC是一种编程思想,由主动的编程变成被动的接收
四、IOC创建对象的方式
-
使用无参构造创建对象,默认!
- 若要使用有参构造
- 下标赋值
<!-- 下标赋值--> <bean id="user" class="cn.imut.pojo.User"> <constructor-arg index="0" value="张磊"/> </bean>
- 类型创建
<!-- 不建议使用--> <bean id="user" class="cn.imut.pojo.User"> <constructor-arg type="java.lang.String" value="张磊"/> </bean>
- 直接通过参数名设置
<bean id="user" class="cn.imut.pojo.User"> <constructor-arg name="name" value="张磊"/> </bean>
总结:在配置文件加载的时候,容器中管理对象就已经初始化了
原文地址:https://www.cnblogs.com/yfyyy/p/12433390.html
时间: 2024-10-10 18:07:14