如果把@Bean写在一个配置Bean里面,过于冗长,不利于维护,可以把配置Bean进行拆分,一个变多个,拆分之后有利于维护

例如:左边是spring与MyBatis的整合配置Bean,右边是事务相关的配置Bean

整合方式@Configuration与右边3个分别整合

跟多配制文件整合是相似的  以包进行扫描进行整合

@import整合对个配置Bean

Config包下:AppConfig1:创建UserService对象

package com.baizhiedu.config;import com.baizhiedu.injection.UserService;
import com.baizhiedu.injection.UserServiceImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;@Configuration
@Import(AppConfig2.class)  //@Import把AppConfig2整合进来
public class AppConfig1 {@Beanpublic UserService userService(){UserServiceImpl userService=new UserServiceImpl();return userService;}
}

AppConfig2:创建UserDAO对象

package com.baizhiedu.config;import com.baizhiedu.injection.UserDAO;
import com.baizhiedu.injection.UserDAOImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class AppConfig2 {@Beanpublic UserDAO userDAO(){return new UserDAOImpl();}
}

TestAnnotation2:

package com.baizhiedu;import com.baizhiedu.bean.Customer;
import com.baizhiedu.config.AppConfig1;
import com.baizhiedu.injection.UserDAO;
import com.baizhiedu.injection.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class TestAnnotation2 {//用于测试:@componentScan 扫描基础注解的使用@Testpublic void test1(){ApplicationContext ctx=new AnnotationConfigApplicationContext(AppConfig2.class);String[] beanDefinitionNames=ctx.getBeanDefinitionNames();//获取所有对象的idfor (String beanDefinitionName:beanDefinitionNames){System.out.println("beanDefinitionName="+beanDefinitionName);}}//用于测试:测试创建对象的优先级: @Component及其衍生注解<@Bean<配置文件bean标签//高优先级会覆盖低优先级@Testpublic void test3(){ApplicationContext ctx=new AnnotationConfigApplicationContext(AppConfig3.class);Customer customer=(Customer) ctx.getBean("customer");System.out.println("cus="+customer.getId());System.out.println("cus="+customer.getName());}//测试:解耦合@Testpublic void test4(){ApplicationContext ctx=new AnnotationConfigApplicationContext(AppConfig4.class,AppConfig5.class);//让多个配置Bean起作用,也可以指定包作为扫描//ApplicationContext ctx=new AnnotationConfigApplicationContext("com.baizhiedu");//以包进行扫描配置Bean,让多个配置B二胺有效UserDAO userDAO=(UserDAO) ctx.getBean("userDAO");userDAO.save();}//用于测试多配制Bean的整合@Testpublic void test5(){ApplicationContext ctx=new AnnotationConfigApplicationContext("com.baizhiedu.config");UserDAO userDAO =(UserDAO) ctx.getBean("userDAO");UserService userService =(UserService) ctx.getBean("userService");System.out.println("userDAO="+userDAO);System.out.println("userService="+userService);}//用于测试多配制Bean的整合 @Import注解@Testpublic void test6(){ApplicationContext ctx=new AnnotationConfigApplicationContext(com.baizhiedu.config.AppConfig1.class);UserDAO userDAO =(UserDAO) ctx.getBean("userDAO");UserService userService =(UserService) ctx.getBean("userService");System.out.println("userDAO="+userDAO);System.out.println("userService="+userService);}
}

test5:包扫描整合

test6:@Import注解整合

Spring:多配制信息整合相关推荐

  1. Spring Boot 2.x整合Quartz

    宣传官网 xb.exrick.cn 在线Demo xboot.exrick.cn 开源版Github地址 github.com/Exrick/x-bo- 开发文档 www.kancloud.cn/ex ...

  2. Spring与日志的整合

    Spring 与日志框架进行整合,日志框架就可以在控制台中,输出Spring框架运行过程中的⼀ 些重要的信息. 好处:便于了解Spring框架的运行过程,利于程序的调试. 默认日志框架 Spring ...

  3. spring学习笔记06-spring整合junit(出现的问题,解决的思路)

    spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...

  4. SSM框架Spring+SpringMVC+MyBatis——详细整合教程

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参 ...

  5. spring boot使用Jedis整合Redis

    文章目录 spring boot使用jedis整合redis 总结 Spring Boot整合Redis有两种方式,分别是Jedis和RedisTemplate,那么它们二者有什么区别呢? 1.Jed ...

  6. Spring , Spring mybatis 配制文件 模板

    2019独角兽企业重金招聘Python工程师标准>>> `### Spring , Spring mybatis 配制文件 模板 <?xml version="1.0 ...

  7. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化

    本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...

  8. spring和hibernate的整合

    阅读目录 一.概述 二.整合步骤 1.大致步骤 2.具体分析 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让H ...

  9. [Spring Boot]Druid datasource整合及配置

    [Spring Boot]Druid datasource整合及配置 创建Spring Boot项目 这里使用默认配置创建一个空项目 demo-druid 用作演示,可跳过这一段: 只勾选基本的Spr ...

最新文章

  1. mormot orm rest注意事项
  2. java环境变量立即生效_win7批处理环境变量立即生效
  3. mysql 张三的语文成绩_八道 经典的 MYSQL 面试题目(有答案)
  4. 游族网络董事长林奇收监管函 涉嫌违规减持
  5. freeswitch modules 模块
  6. openssl CRL证书
  7. Java权限管理系统之代码实现(二)
  8. 简单有限元分析python实现——二维1单元4节点刚度矩阵求解然后得到4个节点的位移和力
  9. 高等数学 第一章 极限和连续函数
  10. CI24R1低成本国产2.4G无线收发器芯片替代XN297精简版SI24R1
  11. 亚马逊Amazon广告API如何申请注册?
  12. Tableau字符串拼接
  13. PING用一生诠释了TCP/IP(4)------二三层转发为PING劈荆斩棘
  14. jacod 使用 WPS或 office相关注册表信息
  15. 数据科学与大数据技术专业 —— 云计算●虚拟化 课程 期末复习卷及其简答(2)
  16. Linux TCP/IP大合集
  17. 王道俊教育学第7版笔记和课后答案
  18. 一分钟学会自定义右上角显示数字的ImageView
  19. CSDN提供的博客搬家功能体验[持续跟踪]
  20. 【Python爬虫系列教程 41-100】猫眼电影字体加密破解

热门文章

  1. 微信小程序的拍照功能
  2. java从指定文件中删除字符串,java删除指定目录中的文件或文件夹
  3. 手把手教你建站,建站其实很简单!
  4. 大数据时代与精准运维
  5. 在线书店java项目_基于jsp的网上书店-JavaEE实现网上书店 - java项目源码
  6. 大连理工c语言第三次上机作业,大连理工大学工数上机作业
  7. GDB thread命令
  8. 传智播客大讲堂隆重开讲
  9. html怎么实现时间倒计时,Javascript实现时间倒计时功能
  10. 【POJ No. 1797】重型运输 Heavy Transportation