Spring:多配制信息整合
如果把@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:多配制信息整合相关推荐
- Spring Boot 2.x整合Quartz
宣传官网 xb.exrick.cn 在线Demo xboot.exrick.cn 开源版Github地址 github.com/Exrick/x-bo- 开发文档 www.kancloud.cn/ex ...
- Spring与日志的整合
Spring 与日志框架进行整合,日志框架就可以在控制台中,输出Spring框架运行过程中的⼀ 些重要的信息. 好处:便于了解Spring框架的运行过程,利于程序的调试. 默认日志框架 Spring ...
- spring学习笔记06-spring整合junit(出现的问题,解决的思路)
spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...
- SSM框架Spring+SpringMVC+MyBatis——详细整合教程
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参 ...
- spring boot使用Jedis整合Redis
文章目录 spring boot使用jedis整合redis 总结 Spring Boot整合Redis有两种方式,分别是Jedis和RedisTemplate,那么它们二者有什么区别呢? 1.Jed ...
- Spring , Spring mybatis 配制文件 模板
2019独角兽企业重金招聘Python工程师标准>>> `### Spring , Spring mybatis 配制文件 模板 <?xml version="1.0 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化
本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...
- spring和hibernate的整合
阅读目录 一.概述 二.整合步骤 1.大致步骤 2.具体分析 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让H ...
- [Spring Boot]Druid datasource整合及配置
[Spring Boot]Druid datasource整合及配置 创建Spring Boot项目 这里使用默认配置创建一个空项目 demo-druid 用作演示,可跳过这一段: 只勾选基本的Spr ...
最新文章
- mormot orm rest注意事项
- java环境变量立即生效_win7批处理环境变量立即生效
- mysql 张三的语文成绩_八道 经典的 MYSQL 面试题目(有答案)
- 游族网络董事长林奇收监管函 涉嫌违规减持
- freeswitch modules 模块
- openssl CRL证书
- Java权限管理系统之代码实现(二)
- 简单有限元分析python实现——二维1单元4节点刚度矩阵求解然后得到4个节点的位移和力
- 高等数学 第一章 极限和连续函数
- CI24R1低成本国产2.4G无线收发器芯片替代XN297精简版SI24R1
- 亚马逊Amazon广告API如何申请注册?
- Tableau字符串拼接
- PING用一生诠释了TCP/IP(4)------二三层转发为PING劈荆斩棘
- jacod 使用 WPS或 office相关注册表信息
- 数据科学与大数据技术专业 —— 云计算●虚拟化 课程 期末复习卷及其简答(2)
- Linux TCP/IP大合集
- 王道俊教育学第7版笔记和课后答案
- 一分钟学会自定义右上角显示数字的ImageView
- CSDN提供的博客搬家功能体验[持续跟踪]
- 【Python爬虫系列教程 41-100】猫眼电影字体加密破解