Spring注解整合mybatis

具体代码

1. 配置类

@Configuration // 标注当前类是一个配置类(替代配置文件) + @Component
@ComponentScan({"com.edu"}) // 扫描包<context:component-scan base-package="com.edu"/>
@PropertySource({"classpath:jdbc.properties"})
// 加载配置文件 <context:property-placeholder location="jdbc.properties"/>
@Import(OtherBean.class) // 导入其他Bean <import resource="otherBean.xml"/>
// Mapper的接口扫描
@MapperScan("com.edu.mapper")
public class SpringConfig {

    @Bean
    public DataSource dataSource(
            @Value("${jdbc.driverClassName}") String driver,
            @Value("${jdbc.url}") String url,
            @Value("${jdbc.username}") String username,
            @Value("${jdbc.password}") String password
    ){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(@Qualifier("dataSource") DataSource dataSource){
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }

}

2. service

@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public void show() {
       List<User> all = userMapper.findAll();
       for (User user : all){
           System.out.println(user);
       }
    }

}

3. mapper

<select id="findAll" resultType="com.edu.pojo.User">
    select * from tb_user
</select>

4. out

原理剖析

spring与mybatis注解方式整合有个重要的技术点就是@import,第三方框架与Spring整合xml方式很多是凭借自定义标签完成的,而第三方框架与Spring整合注解方式很多靠@Import注解完成

@Import可以导入如下三种类

~~ 普通的配置类

~~ 实现ImportSelector接口的类

~~ 实现ImportBeanDefinitionRegistrar接口的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值