码迷,mamicode.com
首页 > 编程语言 > 详细

Spring学习二、HelloSpring与IOC创建对象方式

时间:2020-03-07 13:27:09      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:beans   cto   控制反转   oid   必须   控制   学习   type   app   

三、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创建对象的方式

  1. 使用无参构造创建对象,默认!
  2. 若要使用有参构造

    • 下标赋值
    <!-- 下标赋值-->
    <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>

总结:在配置文件加载的时候,容器中管理对象就已经初始化了

Spring学习二、HelloSpring与IOC创建对象方式

标签:beans   cto   控制反转   oid   必须   控制   学习   type   app   

原文地址:https://www.cnblogs.com/yfyyy/p/12433390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!