Spring-xml版本

依赖

<!--spring-context涵盖了aop,beans,core,expression-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.18</version>
</dependency>
<!--测试工具-->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.1</version>
</dependency>

实体类

public class User {
   
    private String id;
    private String username;
    private String password;
}
public class Student {
   
    private String[] string;
    private Object object;
    private List<String> list;
    private Map<String,String> map;
    private Properties properties;
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--导入外部配置文件-->
    <import resource="studentBeans.xml"/>
    <!--一个bean代表一个对象,在需要的时候通过反射实例化-->
    <!--name可以起多个别名,用","或";"或" "分隔-->
    <bean id="user1" class="org.example.pojo.User" name="user1-1;user1-2">
        <!--property给对象属性赋值,实际上就是调用set方法,如果没有提供set方法会报错-->
        <property name="id" value="-1"/>
        <property name="password" value="1234"/>
        <property name="username" value="zhangsan"/>
    </bean>
    <!--有参构造创建对象-->
    <bean id="user2" class="org.example.pojo.User">
        <constructor-arg name="id" value=""/>
        <constructor-arg name="password" value=""/>
        <constructor-arg name="username" value=""/>
    </bean>
    <!--给bean配置别名-->
    <alias name="user1" alias="user1-3"/>
    <!--p命名空间注入:setter注入-->
    <!--singleton:单例模式(默认),这个bean只创建一个对象-->
    <!--prototype:原型模式,每次获取这个bean都会产生新对象-->
    <bean id="userP" class="org.example.pojo.User" p:username="zhangsanp" p:password="123p" scope="singleton"/>
    <!--c命名空间注入:构造器注入-->
    <bean id="userC" class="org.example.pojo.User" c:id="1" c:username="zhangsanc" c:password="123c"/>
    <!--不同类型依赖注入-->
    <bean id="user3" class="org.example.pojo.Student">
        <!--对象-->
        <property name="object" ref="user1"/>
        <!--数组,集合-->
        <property name="string">
            <array><!--<list>、<set>-->
                <value>str1</value>
                <value>str2</value>
            </array>
        </property>
        <!--Map-->
        <property name="map">
            <map>
                <entry key="k1" value="v1"/>
                <entry key="k2" value="v2"/>
            </map>
        </property>
        <!--null-->
        <property name="list">
            <null/>
        </property>
        <!--properties-->
        <property name="properties">
            <props>
                <prop key="username">root</prop>
                <prop key="password">1234</prop>
            </props>
        </property>
    </bean>
    <!--spring的自动装配-->
    <!--byName:在容器上下文中查找和类属性名称相同的bean的id-->
    <!--byType:在容器上下文中查找和类属性类型相同的bean的class(与属性类型相同的class必须全局唯一)-->   
    <bean class="org.example.pojo.User" autowire="byName"/>
</beans>

测试类

public class UserTest{
   
    @Test
    public void getUser(){
   
        // 传统方式创建对象
        // User user = new User();
        // IOC:由spring框架自动实例化
        BeanFactory beanFactory = new ClassPathXmlApplicationContext("userBeans.xml");
        User userC = (User) beanFactory.getBean("userC");
    }
}

相关推荐

  1. Spring-xml版本

    2023-12-12 07:30:06       44 阅读
  2. MyBatis-xml版本

    2023-12-12 07:30:06       43 阅读
  3. Spring-IOC-xml方式

    2023-12-12 07:30:06       39 阅读
  4. 001 spring ioc(xml)

    2023-12-12 07:30:06       15 阅读
  5. Spring Boot接收xml参数

    2023-12-12 07:30:06       38 阅读
  6. Spring-ioc-纯xml配置

    2023-12-12 07:30:06       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 07:30:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 07:30:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 07:30:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 07:30:06       20 阅读

热门阅读

  1. Mysql mybatis 语法示例

    2023-12-12 07:30:06       41 阅读
  2. Docker与K8s的区别

    2023-12-12 07:30:06       38 阅读
  3. x的平方根算法(leetcode第69题)

    2023-12-12 07:30:06       38 阅读
  4. Flask存储在内存中的密钥被读取

    2023-12-12 07:30:06       38 阅读
  5. MATLAB 2021b 安装教程

    2023-12-12 07:30:06       49 阅读
  6. 微服务学习二

    2023-12-12 07:30:06       44 阅读
  7. 洛谷 P8628 [蓝桥杯 2015 国 AC] 穿越雷区

    2023-12-12 07:30:06       48 阅读
  8. 【Fiddler】IDEA配置Fiddler

    2023-12-12 07:30:06       37 阅读
  9. 面试经典150题(14)

    2023-12-12 07:30:06       39 阅读