spring boot学习笔记(一)

spring boot的优点

配置简单!!!配置简单!!!配置简单!!!
1,可以创建独立的spring应用程序。
2,嵌入tomcat jetty 容器,不需要部署war包。
3,简化maven配置。
4,根据项目依赖自动配置spring框架
5,没有xml配置文件

spring boot的注解

  • @RestController
    注解告诉Spring以字符串的形式渲染结果,并直接返回给调用者=@Controller+@Responsbody
  • @RequestMapping
    注解提供路由信息,告诉Spring任何来自”/”路径的HTTP请求都应该被映射到 home 方法
  • @Configuration
    加上该注解,等价于在XML中配置beans 用@Bean注解等价于xml配置bean
  • @EnableAutoConfiguration
    告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring,spring boot 建议只含有一个带有该注解的类
  • @CompoentScan
    常使用 @ComponentScan 注解搜索beans,并结合 @Autowired 构造器注入。
  • @SpringBootApplication
    =@Configuration + @EnableAutoConfiguration + @CompoentScan
  • @vlaue
    在初始化时很方便的对Bean的入参变量进行赋值。还有一种写法:${some.proptery.key}”,即将property的key值写在花括号中。
@Value("${mybatis.configLocation}")
    private String configLocation;

spring boot 集成mybatis

  • 使用mybatis官方提供的mybatis-spring-boot-starter
    在pom.xml加依赖:
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

在application.yml中添加配置:

mybatis: 
 mapperLocations: classpath:mappers/*.xml
 typeAliasesPackage: com.pinganfu.dayu.dal.domain.auto
 basePackage: com.pinganfu.dayu.dal.mapper
 configLocation: mybatis-config.xml

或在.properties中增加配置:

mybatis.mapperLocations=classpath*:mappers/**/*.xml
mybatis.typeAliasesPackage=com.pinganfu.dayu.dal.domain
mybatis.configuration.map-underscore-to-camel-case=true
pagehelper.offset-as-page-num=true
  • mybatis-spring方式
    需要加mybatis mybatis-spring 依赖
           <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>${mybatis-spring.version}</version>
            </dependency>

然后编写MybatisConfig配置类


@Configuration
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {

    @Value("${mybatis.configLocation}")
    private String configLocation;

    @Value("${mybatis.typeAliasesPackage}")
    private String typeAliasesPackage;

    @Value("${mybatis.mapperLocations}")
    private String mapperLocations;

    @Autowired
    DataSource dataSource;

    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactoryBean() {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setTypeAliasesPackage(typeAliasesPackage);
        //bean.setPlugins(new Interceptor[] { pageHelper() });

        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        try {
            bean.setConfigLocation(resolver.getResource(configLocation));
            bean.setMapperLocations(resolver.getResources(mapperLocations));
            return bean.getObject();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

    @Bean
    @Override
    public PlatformTransactionManager annotationDrivenTransactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }
}

上面代码创建了一个SqlSessionFactory和一个SqlSessionTemplate,为了支持注解事务,增加了@EnableTransactionManagement注解,并且反回了一个PlatformTransactionManagerBean。

如果我们想要扫描MyBatis的Mapper接口,我们就需要配置这个类,这个配置我们需要单独放到一个类中:

@Configuration
@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig {

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
        mapperScannerConfigurer.setBasePackage("com.pinganfu.dayu.dal.mapper.auto");
        return mapperScannerConfigurer;
    }

}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值