文档章节

spring boot mybatis 快速构建微服务

evil_01
 evil_01
发布于 2016/07/15 10:14
字数 432
阅读 1121
收藏 7

1.第一种构建是使用springboot的方式,

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<version>${spring.boot.version}</version>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>${spring.boot.version}</version>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-aop</artifactId>
	<version>${spring.boot.version}</version>
</dependency>

spring boot会根据自己的需要引入相对应版本的mybatis

2.第二种,自己引用对应的mybatis版本

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>${mybatis.version}</version>
</dependency>
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
	<version>${spring.mybatis.version}</version>
</dependency>
<!-- mybatis page plugin -->
<dependency> 
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>${mybatis.page.version}</version>
</dependency>
<!-- druid -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>${druid.version}</version>
</dependency>
<!-- mysql driver -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>${mysql.version}</version>
</dependency>

对应的版本为

<spring.boot.version>1.3.6.RELEASE</spring.boot.version>
<spring.mybatis.version>1.1.1</spring.mybatis.version>
<mybatis.version>3.4.0</mybatis.version>
<spring.mybatis.version>1.3.0</spring.mybatis.version>
<druid.version>1.0.22</druid.version>
<mysql.version>5.1.26</mysql.version>
<mybatis.page.version>4.1.6</mybatis.page.version>

通过入口启动内嵌的tomcat,

@SpringBootApplication
@ComponentScan(basePackages = "com.capacity")
public class BootApp extends WebMvcConfigurerAdapter {

	public static void main(String[] args) {
		SpringApplication.run(BootApp.class, args);
	}
}

@SpringBootApplication annotation is equivalent to using @Configuration@EnableAutoConfiguration and @ComponentScan

@ComponentScan组件扫描

下来是mybatis配置:

@Configuration
@EnableTransactionManagement
@MapperScan("com.capacity.dto")
public class MybatisConfig implements TransactionManagementConfigurer {

	@Autowired
	DataSource dataSource;

	@Bean
	public SqlSessionFactory sqlSessionFactory() {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

		bean.setDataSource(dataSource);
		bean.setTypeAliasesPackage("com.capacity.domain");

		PageHelper pageHelper = new PageHelper();
		Properties properties = new Properties();
		properties.setProperty("reasonable", "true");
		properties.setProperty("supportMethodsArguments", "true");
		properties.setProperty("returnPageInfo", "check");
		properties.setProperty("params", "count=countSql");
		pageHelper.setProperties(properties);

		// 添加插件
		bean.setPlugins(new Interceptor[] { pageHelper });
		// 添加xml目录
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		try {
			bean.setMapperLocations(resolver.getResources("classpath:/mybatis/**/**/*.xml"));
			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);
	}

可以添加拦截器:

public class WebAppConfig extends WebMvcAutoConfigurationAdapter {

	public void addInterceptor(InterceptorRegistry registry) {
		registry.addInterceptor(new UserSecurityInterceptor()).addPathPatterns("/user/**");
	}
}

这里的配置文件用的是yml格式,不过配置文件好像名字默认是application,不能改,如果要改要用命令行加参数的方式

基本核心代码完了,可以试着建一个dao或者mapper,在建立一个Controller调用一下

© 著作权归作者所有

共有 人打赏支持
evil_01
粉丝 9
博文 45
码字总数 29244
作品 0
卢湾
架构师
私信 提问
加载中

评论(1)

p
phoenix99
sjhh
一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用...

ityouknow
05/16
0
0
一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,...

java高级架构牛人
05/14
0
0
一文读懂Spring Boot、微服务架构和大数据治理之间的故事

微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用...

纯洁微笑
05/10
0
0
为什么Java大神,都在看Spring Boot和Spring Cloud的书?

如果你是一名Java开发人员,并且最近正打算学习Spring Boot和Spring Cloud框架并寻找一些关于它们的最好的书籍,那么,你今天就来对地方了。 本文,我们将讨论一些学习Spring Boot和Spring ...

Java小铺
09/18
0
0
Java 程序员必会的技术——Spring boot

每一位程序员都有一个英雄梦,幻想着有朝一日能够 拳打国内BAT,脚踢硅谷FLG。至少至少,也要成为后厂村一霸。 对于后端程序员来说,有一项至关重要的技术可以帮助我们早日实现梦想。这项技术...

Java填坑之路
09/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

[LintCode] Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)

描述 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列化二叉树是没有限制的,你...

honeymose
今天
5
0
java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
23
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
18
0
my.ini

1

architect刘源源
今天
16
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部