• Spring IoC、DI入门小程序


    Alt+/智能提示xml配置文件节点及属性;在接口上使用Ctrl+T可以提示其实现类

    一、IoC控制反转(将创建对象的权利交给spring)入门小程序

    1、引入jar包

    2、工程基本结构

    3、新建UserService类

    package hjp.spring.demo1;
    
    import org.junit.Test;
    
    public class UserService {
        public void addUser() {
            System.out.println("addUser");
        }
    }

    4、新建beans.xml文件配置bean

    <?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="userServiceId" class="hjp.spring.demo1.UserService"></bean>
    </beans>

    5、新建测试类TestApp

    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class TestApp {
        @Test
        public void demo1() {
            // 1、加载配置文件
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("hjp/spring/demo1/beans.xml");
            // 2、从Spring工厂获得对象
            UserService userService = (UserService) applicationContext.getBean("userServiceId");
            userService.addUser();
        }
    }

    二、DI依赖注入(自动实例化类中属性对象)入门小程序

    1、沿用上面工程

    2、新增包,结构如下

    3、新建BookDao类

    package hjp.spring.demo2;
    
    public class BookDao {
        public void save() {
            System.out.println("save book");
        }
    }

    4、新建BookService类

    package hjp.spring.demo2;
    
    public class BookService {
        private BookDao bookDao;
    
        public BookDao getBookDao() {
            return bookDao;
        }
    
        public void setBookDao(BookDao bookDao) {
            this.bookDao = bookDao;
        }
    
        public void addBook() {
            bookDao.save();
        }
    }

    5、新建beans.xml文件配置bean

    <?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">
        <!-- 创建dao -->
        <bean id="bookDaoId" class="hjp.spring.demo2.BookDao">
        </bean>
        <!-- 创建service -->
        <bean id="bookServiceId" class="hjp.spring.demo2.BookService">
            <!-- <property>进行依赖注入过程,底层将执行setter方法 
            name 指BookService类bookDao属性 
            ref 指属性实例引用 
            -->
            <property name="bookDao" ref="bookDaoId"></property>
        </bean>
    </beans>

    6、新建测试类TestAPP

    package hjp.spring.demo2;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class TestApp {
        @Test
        public void demo1() {
            //获得容器
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("hjp/spring/demo2/beans.xml");
            //获得对象
            BookService bookService = applicationContext.getBean("bookServiceId", BookService.class);
            bookService.addBook();
        }
    }
  • 相关阅读:
    数据结构学习(十二)、归并排序
    数据结构学习(十一)、堆排序
    数据结构学习(十)、插入排序
    数据结构学习(九)、简单选择排序
    数据结构学习(八)、冒泡排序
    天梯赛 L3-013 非常弹的球 找规律
    codeup模拟赛 进击的二叉查找数
    POJ 2828 Buy Tickets 线段树 倒序插入 节点空位预留(思路巧妙)
    HDU 1394 逆序数 线段树单点跟新 | 暴力
    HDU 2795 Billboard 线段树,区间最大值,单点更新
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4773553.html
Copyright © 2020-2023  润新知