自己网站建设容易吗,郑州动漫设计公司招聘,南宁seo团队计划,广东省建设银行招聘网站目录
Spring整合MyBatis
原有xml方式整合配置如下 注解方式#xff1a;
Import可以导入如下三种类 第三方框架是指由其他开发者或团队开发的软件模块或库#xff0c;供开发者在自己的应用程序中使用。这些框架通常提供了一系列已经封装好的功能或工具#xff0c;可节省开…目录
Spring整合MyBatis
原有xml方式整合配置如下 注解方式
Import可以导入如下三种类 第三方框架是指由其他开发者或团队开发的软件模块或库供开发者在自己的应用程序中使用。这些框架通常提供了一系列已经封装好的功能或工具可节省开发者的时间和精力。常见的第三方框架包括Web框架、移动应用程序开发框架、图形界面框架、数据库框架、游戏引擎等。开发者可以通过相应的API调用第三方框架提供的功能从而快速地构建出自己的应用程序。 Spring整合MyBatis
原有xml方式整合配置如下 !-- 配置SqlSessionFactoryBean作用将SqlSessionFactory存储到Spring容器 --bean classorg.mybatis.spring.SqlSessionFactoryBeanproperty namedataSource refdataSource/property/bean!-- 作用扫描指定的包产生Mapper对象存储到Spring容器--bean classorg.mybatis.spring.mapper.MapperScannerConfigurer
!-- 扫描的包 --property namebasePackage valuecom.xfy.mapper/property/beanbean iddataSource classcom.alibaba.druid.pool.DruidDataSourceproperty namedriverClassName value${jdbc.driver}/propertyproperty nameurl value${jdbc.url}/propertyproperty nameusername value${jdbc.username}/propertyproperty namepassword value${jdbc.password}/property/bean 注解方式 Spring整合MyBatis的原理关键在于MapperScanMapperScan不是Spring提供的注解是MyBatis为了整合Spring在整合包org.mybatis.annotation中提供的注释 Retention(RetentionPolicy.RUNTIME)
Target({ElementType.TYPE})
Documented
Import({MapperScannerRegistrar.class})
Repeatable(MapperScans.class)
public interface MapperScan { //标注当前类是一个配置类Component
Configuration
ComponentScan(basePackages {org.xfy} )//basePackages是一个数组 组件扫描
PropertySource(classpath:jdbc.properties)//用于加载外部properties资源配置
Import(otherBean.class)//用于加载其他配置类
MapperScan(org.xfy.mapper)//接口扫描
public class SpringConfig {Beanpublic DataSource dataSource(Value(${jdbc.driver}) String driver,Value(${jdbc.url}) String url,Value(${jdbc.username}) String username,Value(${jdbc.password}) String password){DruidDataSource dataSourcenew DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}Beanpublic SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){SqlSessionFactoryBean sqlSessionFactoryBeannew SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);return sqlSessionFactoryBean;}
Spring与MyBatis注解方式整合有个重要的技术点就是Import第三方框架与Spring整合xml方式很多是凭借自定义标签完成的而第三方框架与Spring整合注解方式很多是靠Import完成的
Import可以导入如下三种类 普通的配置类 实现ImportSelector接口的类
package org.xfy.imports;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;
import org.xfy.beans.otherBean;
import org.xfy.beans.otherBean2;import java.util.Map;
import java.util.function.Predicate;public class MyImportSelect implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata annotationMetadata) {//AnnotationMetadata叫做注释媒体数组该对象内部封装的是当前使用了import注解的类上的其他注解的源形象MapString, Object annotationAttributes annotationMetadata.getAnnotationAttributes(ComponentScan.class.getName());//返回的数组封装的是需要被注册到Spring容器中的Bean的全限定名return new String[]{otherBean2.class.getName()};}} 实现ImportBeanDefinitionRegister接口的类
package org.xfy.imports;import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;
import org.xfy.beans.otherBean2;public class MyImporBeanDefinitionRegisart implements ImportBeanDefinitionRegistrar
{Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) {//注册Bean DefinitionBeanDefinition beanDefinitionnew RootBeanDefinition();beanDefinition.setBeanClassName(otherBean2.class.getName());registry.registerBeanDefinition(otherBean2,beanDefinition);}