spring bean管理

作者: glory_前端 | 来源:发表于2017-11-01 11:38 被阅读29次
1.bean实例化的方式

(1)bean的实例化就是通过配置文件创建对象
(2)bean实例化三种创建方式
第一种:通过类中的无参构造器进行创建(重点,一般用第一种)
第二种:使用静态工厂创建
第三种:使用实例工厂创建

2.bean标签常用的属性

(1)id属性:唯一标识,根据id得到配置对象,不能包含特殊符号
(2)class属性:创建对象所在类的全路径
(3)name属性:和id属性一样,id也可以换为name,name可以包含特殊符号
(4)scope属性:bean的作用范围
scope属性包含:1.singleton 2.prototype 3.request 4.session 5.globalSession.重点前两个
singleton单例模式(默认值) 2.prototype 多实例模式,设置scope="prototype "

3.属性注入

创建对象的时候,向类中属性设置值

属性注入的方法
1.使用set方法注入
2.使用构造器注入
3.使用接口注入
在spring框架里面只支持前两种注入

image.png

spring有参构造方法注入

package cn.itcast.property;

/*spring有参构造注入*/

public class propertyDemo1 {
    
    private String Username;

    public propertyDemo1(String username) {

        this.Username = username;
    }

    public void test(){
        System.out.println("有参构造注入"+Username);
    }
    
    
}

配置文件

<?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="demo" class="cn.itcast.property.propertyDemo1">
        <!--使用有参构造注入 参数name属性名字,value 属性值-->
        <constructor-arg name="username" value="小明"></constructor-arg>
   
   </bean>

</beans>

测试方法

package cn.itcast.property;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testIoc {

    @Test
    public void testUser(){
        //1.加载spring配置文件
        ApplicationContext context=new ClassPathXmlApplicationContext("beanConfig.xml");
        //得到配置创建的对象
        propertyDemo1 use= (propertyDemo1) context.getBean("demo");
        
        use.test();
    }
}

spring的set造方法注入

package cn.itcast.property;

public class book {
    
    private String bookName;

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
    
    public void testbook(){
        System.out.println("set注入"+bookName);
    }
}

配置文件

<!-- 使用set方法注入 -->
    <bean id="book" class="cn.itcast.property.book">
        <!-- 注入属性
             参数name属性名字,value 属性值
         -->
        <property name="bookName" value="java"></property>
    </bean>

测试

package cn.itcast.property;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testIoc {

    @Test
    public void testUser(){
        //1.加载spring配置文件
        ApplicationContext context=new ClassPathXmlApplicationContext("beanConfig.xml");
        //得到配置创建的对象
    
        book bk=(book) context.getBean("book");
        
        bk.testbook();
    }
}

相关文章

网友评论

    本文标题:spring bean管理

    本文链接:https://www.haomeiwen.com/subject/dpzppxtx.html