03.Spring5(IOC操作Bean管理)

本文详细介绍了Spring中的Bean管理,包括如何通过IoC(Inversion of Control)和DI(Dependency Injection)创建对象并注入属性,涵盖了基于XML配置和注解的方式,帮助读者理解Spring的依赖注入原理和实践应用。
摘要由CSDN通过智能技术生成

1.什么是Bean管理

Bean管理指的是两个操作:
(1)Spring创建对象
(2)Spring注入属性

(1)Spring创建对象,如下例

public class User {
    public void add(){
        System.out.println("add......");
    }
}

(2)Spring注入属性

private String userName;
像上面代码给userName设置值的操作就是注入属性

2.Bean管理操作两种方式

(1)基于xml配置文件方式实现
(2)基于注解方式实现

(1)IOC操作bean管理(基于xml方式)

基于XML方式创建对象

<bean id="user" class="com.XXX.XXX.User"></bean>
1.在Spring配置文件中,使用bean标签,标签里添加对应属性,就可以实现对象创建
2.在bean标签里边有很多属性,常用属性有
	id属性:唯一标识。
	class属性:创建对象所在类的全路径。
	name属性:和id属性功能类似,区别是name属性可以添加特殊符号,如"/"。
3.创建对象的时候,默认执行无参构造完成对象的创建。

基于Xml方式注入属性

(1)DI:依赖注入,就是注入属性
IOC和DI区别:DI是IOC的一种具体实现。
第一种注入方式:使用set方法进行注入
1.创建类,定义属性和对应的set方法
/**
 * 演示使用set方法进行注入属性
 */
public class Book {
    //创建属性
    private String name;
    private String author;

    /**
     * 创建属性对应的set方法
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    
	public void test(){
        System.out.println(name+":"+author);
    }
}
2.在spring配置文件配置对象创建,配置属性注入
<?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">

    <!--set方法注入属性-->
    <bean id="book" class="com.atguigu.spring5.Book">
        <!--使用property完成属性的注入
            name:类里面属性名称
            value:向属性注入的值
        -->
        <property name="name" value="java入门到放弃"></property>
        <property name="author" value="LPC"></property>
    </bean>
</beans>

下面是测试方法

@Test
    public void testBook(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Book book = context.getBean("book",Book.class);
        System.out.println(book);
        book.test();
    }

下面是输出结果:

com.atguigu.spring5.Book@52f759d7
java入门到放弃:LPC
第二种注入方式:通过有参构造注入
1.创建类,定义属性和有参构造
/**
 * 演示使用有参构造方式进行注入属性
 */
public class Book {
    //创建属性
    private String name;
    private String author;

    /**
     * 有参构造
     * @param name
     * @param author
     */
    public Book(String name, String author) {
        this.name = name;
        this.author = author;
    }

    public void test(){
        System.out.println(name+":"+author);
    }
}
2.在spring配置文件配置对象创建,配置属性注入
<?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="book" class="com.atguigu.spring5.Book">
        <constructor-arg name="name" value="php入门到放弃"></constructor-arg>
        <constructor-arg name="author" value="lpc"></constructor-arg>
    </bean>
    
</beans>

下面是测试方法

package com.atguigu.spring5.testdemo;

import com.atguigu.spring5.Book;
import com.atguigu.spring5.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSpring5 {

    @Test
    public void testBook(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Book book = context.getBean("book",Book.class);
        System.out.println(book);
        book.test();
    }
}

输出结果是:

com.atguigu.spring5.Book@4e718207
php入门到放弃:lpc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值