Spring源码的了解(2.5) Spring的xml的方法实现控制反转的例子

版权声明:转载的话 请标明出处 https://blog.csdn.net/qq_28198181/article/details/88341892

学习地址:https://www.bilibili.com/video/av35914008/(别问 问就是蹭流量)(https://www.majiaxueyuan.com/front/showcoulist

创建User后的后续.......

使用xml配置文件去创建一个user对象后,还可以延伸到dao层和service层的配置

User对象创建成功后续如下:

目录

1.配置Dao对象

2.配置Service对象

3.创建类和执行方法

4.运行测试


1.配置Dao对象

在上次配置的xml文件中配置一个User的对象的后面添加一个Dao的对象

  <bean id="userDao" class="com.zqj.dao.UserDao">
        <property name="user" ref="user"/>
    </bean>

property name="user"  ref="user" 是指userDao中添加一个user对象,然后ref是连接到上次配好的user对象上 

2.配置Service对象

原理和dao层一致的

3.创建类和执行方法

因为是xml文件依赖类,所以要对应到路径上去写类

UserDao类的内容: 获取到User对象的数据 ,然后展示 模拟与数据库的交互

public class UserDao {

    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public void doUserDao(){
        System.out.println("do UserDao ..............");
        System.out.println("user: " + user.toString() );
    }
}

可以看到

类的左边有一个Spring的标志,点击后就可以跳转到xml对应的bean上

UserService类的方法

public class UserService {

    private UserDao userDao;

    public UserDao getUserDao() {
        return userDao;
    }

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

    public void doUserService(){
            System.out.println("doUserService.........");
            System.out.println("to handle userDao.........");
            userDao.doUserDao();
        }

}

也是可以跳转到对应的bean上

4.运行测试

在测试方法中修改一下

public class EntityTest {

    public static void main(String[] args) {

        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("beans.xml");

        UserService userService = (UserService) classPathXmlApplicationContext.getBean("userService");

        userService.doUserService();

    }

}

通过xml配置读取到userService层

然后执行userService的方法

会看到日志中去创建了三个对象 user,userDao 和  userService

如果是直接new的话 就会报错

NullPointerException的异常,因为找不到无法获取对象userDao

猜你喜欢

转载自blog.csdn.net/qq_28198181/article/details/88341892