美文网首页
Spring详解(四)IOC容器-对象依赖关系

Spring详解(四)IOC容器-对象依赖关系

作者: 秀逼 | 来源:发表于2017-11-09 22:59 被阅读0次

对象依赖关系

DI: 依赖注入

  • 通过构造
  • 通过Set方法对属性进行注入
  • 通过p命名空间
  • 自动装配
  • 注解
使用Set方法对属性进行注入

以常见的三层架构Action , Service, Dao 示例

项目结构:


1.png

applicationContext.xml文件:

<?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:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd">
                
    <!-- Action -->
    <bean id="UserAction" class="com.iotek.second.UserAction">
        <property name="UserService" ref="UserService"></property>
    </bean>
    
    <!-- Service -->
    <bean id="UserService" class="com.iotek.second.UserService">
        <property name="UserDao" ref="UserDao"></property>
    </bean>
    
    <!-- Dao -->
    <bean id="UserDao" class="com.iotek.second.UserDao"></bean>
</beans>

UserAction.java:

package com.iotek.second;

public class UserAction {
    UserService userService;
    
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    public void addUser() {
        userService.save();
    }
}

UserService.java文件:

package com.iotek.second;

public class UserService {
    UserDao userDao;
    
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    public void save() {
        userDao.save();
    }
}

UserDao.java文件:

package com.iotek.second;

public class UserDao {
    public void save() {
        System.out.println("保存数据库成功");
    }
}

UserTest.java文件:

package com.iotek.second;

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

public class UserTest {

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserAction userAction = (UserAction) applicationContext.getBean("UserAction");
        userAction.addUser();
    }

}

当然,配置xml文件也可以使用内部bean的方式,如下

<!-- 内部bean -->
    <bean id="UserAction2" class="com.iotek.second.UserAction">
        <property name="UserService">
            <bean class="com.iotek.second.UserService">
                <property name="UserDao">
                    <bean class="com.iotek.second.UserDao"></bean>
                </property>
            </bean>
        </property>
    </bean>

相关文章

网友评论

      本文标题:Spring详解(四)IOC容器-对象依赖关系

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