报名网站开发多钱,网站备案归属地,wordpress微信商户支付,博兴县建设局网站一、将一个第三方的类配置成bean的方式
1.1、概述 日常的JavaEE开发中#xff0c;难免不会遇到需要使用第三方的类的情况#xff0c;比如#xff1a;MyBatisPlus、RedisTemplate、DruidDataSource...#xff0c;这些外部组件是不同的组织或个人提供的#xff0c;我们为什…一、将一个第三方的类配置成bean的方式
1.1、概述 日常的JavaEE开发中难免不会遇到需要使用第三方的类的情况比如MyBatisPlus、RedisTemplate、DruidDataSource...这些外部组件是不同的组织或个人提供的我们为什么可以直接使用呢这就涉及到了如何将一个第三方的类配置成bean的方式的问题常见的方式如下 Autowired、Resource、Bean、Import(xxx.Class)、Import(xxxImportBeanDefinitionRegistrar.class)、Import(xxxBeanDefinitionRegistryPostProcessor.class)下面分别使用代码进行介绍省略Autowired、Resource 1.2、Bean
/*** Author : 一叶浮萍归大海* Date: 2023/10/26 9:50* Description:*/
Configuration
ComponentScan(basePackages org.star)
public class MySpringConfig {/*** 方式一通过Bean的方式将一个第三方的类注册成bean* 优点能控制bean的创建过程* return*/Beanpublic DruidDataSource druidDataSource() {return new DruidDataSource();}}
1.3、Import(xxx.Class)
/*** Author : 一叶浮萍归大海* Date: 2023/10/26 9:50* Description: 方式二通过Import(第三方类.class)将一个第三方的类注册为bean* 缺点无法干预bean的实例化过程*/
Configuration
ComponentScan(basePackages org.star)
Import(DruidDataSource.class)
public class MySpringConfig {}
1.4、Import(xxxImportBeanDefinitionRegistrar.class) 参考 系列二十一、Spring中bean的创建顺序 #2.2.7节 中的案例。 1.5、 Import(xxxBeanDefinitionRegistryPostProcessor.class)
/*** Author : 一叶浮萍归大海* Date: 2023/10/27 18:52* Description:*/
Component
public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {/*** 作用动态注册BeanDefinition* 调用时机IOC加载时注册BeanDefinition的时候会调用* param registry the bean definition registry used by the application context* throws BeansException*/Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {RootBeanDefinition definition new RootBeanDefinition(DruidDataSource.class);MutablePropertyValues propertyValues definition.getPropertyValues();propertyValues.add(username,admin);propertyValues.add(password,admin123456);registry.registerBeanDefinition(druidDataSource,definition);}Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {}
}