博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringIOC_05 测试泛型依赖注入+IOC总结
阅读量:3968 次
发布时间:2019-05-24

本文共 2623 字,大约阅读时间需要 8 分钟。


本人是个新手,写下博客用于自我复习、自我总结。

如有错误之处,请各位大佬指出。
学习资料来源于:尚硅谷


Book.java:

public class Book {
}

User.java:

public class User {
}

BaseDao.java:

/** * 定义了基本的增删改查方法 *  * */public abstract class BaseDao
{
public abstract void save(); }

BookDao.java:

import org.springframework.stereotype.Repository;import com.guigu.bean.Book;@Repositorypublic class BookDao extends BaseDao
{
@Override public void save() {
// TODO Auto-generated method stub System.out.println("BookDao...保存图书..."); }}

UserDao.java:

import org.springframework.stereotype.Repository;import com.guigu.bean.User;@Repositorypublic class UserDao extends BaseDao
{
@Override public void save() {
// TODO Auto-generated method stub System.out.println("UserDao...保存用户...."); }}

BaseService.java:

import org.springframework.beans.factory.annotation.Autowired;import com.guigu.dao.BaseDao;public class BaseService
{
@Autowired BaseDao
baseDao; public void save(){
System.out.println("自动注入的dao:"+baseDao); baseDao.save(); } }

BookService.java:

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.guigu.bean.Book;@Servicepublic class BookService extends BaseService
{
}

UserService.java

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.guigu.bean.User;@Servicepublic class UserService extends BaseService
{
}

applicationContext.xml:

IOCTest.java:

import static org.junit.Assert.*;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.guigu.service.BookService;import com.guigu.service.UserService;public class IOCTest {
ApplicationContext ioc=new ClassPathXmlApplicationContext("applicationContext.xml"); @Test public void test() {
BookService bookService=ioc.getBean(BookService.class); UserService userService=ioc.getBean(UserService.class); bookService.save(); userService.save(); //获取父类: System.out.println(bookService.getClass().getSuperclass()); //获取泛型父类: System.out.println(bookService.getClass().getGenericSuperclass()); //Spring中可以用带泛型的父类类型来确定这个子类的类型 }}

IOC总结:

  • ioc是一个容器,帮我们管理所有的组件:

    * 1、依赖注入:@Autowired,自动赋值
    * 2、某个组件要使用Spring提供的更多功能(包括IOC、AOP)必须加入到容器中

  • 体会:

    * 1、容器启动,创建所有单实例bean
    * 2、autowired自动装配的时候,是从容器中找这些符合要求的bean
    * 3、ioc.getBean(“bookServlet”);也是从容器中找到这个bean
    * 4、也就是说容器中包括了所有的bean
    * 5、调试spring的源码,容器到底是什么?其实就是一个map
    * 6、这个map中保存所有创建好的bean,并提供外界获取功能…

转载地址:http://exyki.baihongyu.com/

你可能感兴趣的文章
c语言swap(a,b)值交换的4种实现方法
查看>>
c 排序 汇总
查看>>
C 二维数组的动态申请与释放
查看>>
C/C++中产生随机数(rand和srand的用法)
查看>>
c/c++ 中的 struct和typedef struct
查看>>
C++中class类 的 构造函数、析构函数
查看>>
C++小知识点
查看>>
【转载】zedboard中PL_GPIO控制(8个sw、8个leds)
查看>>
zedboard烧写程序到FLASH,用于QSPI Flash启动
查看>>
软件工程师,你必须知道的20个常识
查看>>
常用STL算法2_查找
查看>>
常用STL算法3_排序
查看>>
常用STL算法4_拷贝和替换
查看>>
常用STL算法5_算术和生成
查看>>
常用STL算法6_集合
查看>>
STL综合案例
查看>>
数据结构 的可视化
查看>>
比较版本号的大小 新旧
查看>>
01背包问题
查看>>
O(logn)时间复杂度求Fibonacci数列
查看>>