spring注解方式配置mybatis数据源

本文介绍如何使用Spring 3及以上的版本通过Java注解方式完成与MyBatis的整合,替代XML配置文件。文中详细介绍了所需的Maven依赖、配置类实现及启动类设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 、介绍
从spring3添加了@Configuration 和 @Bean 两个注解,使用这两个注解可以完全代替spring xml 文件的配置。而spring4和springboot都推荐使用注解配置代替xml文件的方式。本文主要介绍用java注解的方式配置spring与mybatis整合。
1、@Configuration 作用于类上,相当于一个xml配置文件;
2、@Bean 作用于方法上,相当于xml配置中的;

二、maven依赖包

  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc16</artifactId>
            <version>11.2.0.3</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <!--线程池-->
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.6</version>
        </dependency>
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.4</version>
        </dependency>
        <!-- mybatis/spring包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
    </dependencies>

三、java配置类

@Configuration  //表示配置文件类
@ComponentScan("com")  //扫描的包 ,代替 <context:component-scan base-package=""/>
@PropertySource(value = {"classpath:jdbc.properties",},ignoreResourceNotFound=true)  //添加配置文件
//@ImportResource(value = {"classpath*:/META-INF/spring/spring-activity-datasource.xml"})   // 引入配置文件
@MapperScan(basePackages = {"com.dao"},sqlSessionFactoryRef = "sqlSessionFactory")    //指导需要注入数据原的包路径
public class SpringConfiguration {

    @Value("${jdbc_driverClassName}")  
    private String jdbc_driverClassName ;
    @Value("${jdbc_url}")  
    private String jdbc_url ;
    @Value("${jdbc_username}")  
    private String jdbc_username ;
    @Value("${jdbc_password}")  
    private String jdbc_password ;
    @Value("${jdbc_initialSize}")  
    private Integer jdbc_initialSize ;
    @Value("${jdbc_minIdle}")  
    private Integer jdbc_minIdle ;
    @Value("${jdbc_maxIdle}")  
    private Integer jdbc_maxIdle ;
    @Value("${jdbc_maxWait}")  
    private Integer jdbc_maxWait ;
    @Value("${jdbc_maxActive}")  
    private Integer jdbc_maxActive ;

    @Bean(destroyMethod="close")
    public DataSource dataSource(){
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl(jdbc_url);
        dataSource.setDriverClassName(jdbc_driverClassName);
        dataSource.setPassword(jdbc_password);
        dataSource.setUsername(jdbc_username);
        dataSource.setMinIdle(jdbc_minIdle);
        dataSource.setMaxActive(jdbc_maxActive);
        dataSource.setMaxIdle(jdbc_maxIdle);
        dataSource.setValidationQuery("select 1 from dual");
        dataSource.setInitialSize(jdbc_initialSize);
        dataSource.setMaxWait(jdbc_maxWait);
        return dataSource;
    }

    @Bean // 带参数的bean ,有参数的bean方法。 spring会从ioc中找对应的bean注入,如果ico中没有会报错
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new org.mybatis.spring.SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/META-INF/mapper/*Mapper.xml")); //mybatis的xml文件路径
        sessionFactoryBean.setTypeAliasesPackage("com.entiy");
        return  sessionFactoryBean;
    }
}

四、启动类

public class ApplicationMain {

    public static void  main(String agr[]) throws IOException {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext(SpringConfiguration.class);
         //

    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值