theme: smartblue
引言
工作时候总是没时间总结一下,但是每次新建项目的时候都会去网上找一些对照笔记去参考,最近再弄一个开源项目,需要搭建一下环境和配置,不如自己把搭建SpringBoot的步骤记录一下。
环境
- JDK 1.8
- MyBatis 2.2.0
- SpringBoot 2.5.8
步骤
Maven引入
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
appliation.yml
# 数据源配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.17.0.207:3306/yx-regiserve?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: yx-regiserve
password: aX3W2ELGZfdKJEJc
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.yanxi.yxregiserve.web.domin.**
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocation: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis默认配置
#mybatis:
# # 扫描的 mapper 的路径
# mapper-locations: classpath*:mapper/**/*Mapper.xml
# # 扫描实体类路径
# type-aliases-package: com.yanxi.yxregiserve.web.domin.**
# # 为了看到SQL语句配置的日志输出信息 方便调试
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
MyBatis.config
直接将mapper的扫描配置,和装载SqlSessionFactory在MyBatis.config。这样配置纯属个人喜好,可以根据自己的实际项目,自定义配置。
如果要跟着我配置,这一段可以不看。 如果要选择默认的话,需要更改appliation.yml中的myBatis的配置(改为注释掉的配置),然后就不需要MyBatis.config。需要在mapper接口直接配置注解 @mapper
即可,或者 在启动main方法上边配置 @MapperScan("com.yanxi.**.mapper")
。
@Configuration
@MapperScan("com.yanxi.**.mapper")
public class MyBatisConfig {
@Autowired
private DataSource dataSource;
@Autowired
private Environment env;
/**
*
* @return
* @throws Exception
*/
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
String mapperLocation = env.getProperty("mybatis.mapperLocation");
String configLocation = env.getProperty("mybatis.configLocation");
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
//可以引入多个,但是本项目只需要引入一个路径。
List<Resource> resources = Arrays.asList(new PathMatchingResourcePatternResolver().getResources(mapperLocation));
sessionFactory.setMapperLocations(resources.toArray(new Resource[resources.size()]));
sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
return sessionFactory.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
JAVA 业务三层架构
Conteroller
@RestController
@RequestMapping(value = "/configDatas")
public class ConfigDataController extends BaseController {
@Autowired
private ConfigDataService configDataService;
/**
* 查询配置列表
*/
@GetMapping("/list")
public AjaxResult list(ConfigData configData)
{
List<ConfigData> list = configDataService.selectTList(configData);
return AjaxResult.success(list);
}
}
Service
接口类
public interface ConfigDataService extends BaseService<ConfigData> {
/**
* id查询
*
* @param id 自增id
* @return
*/
public T selectTById(Long id);
}
实现类
@Service
public class ConfigDataServiceImpl {
@Autowired
public ConfigDataMapper configDataMapper;
@Override
public ConfigData selectTById(Long id) {
return configDataMapper.selectTById(id);
}
}
Mapper
如果是默认配置,没有加扫描注解@MapperScan("com.yanxi.**.mapper")
可以加 @Mapper
。
//@Mapper
public interface ConfigDataMapper {
/**
* id查询
*
* @param id 自增id
* @return
*/
public T selectTById(Long id);
}
resource目录下配置 xml文件
注意:在resource目录下配置的文件,路径一定要个mapper文件路径一致。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yanxi.yxregiserve.web.mapper.system.ConfigDataMapper">
<resultMap id="ConfigDataResult" type="com.yanxi.yxregiserve.web.domin.system.ConfigData">
<result column="id" property="id"/>
<result column="key" property="key"/>
<result column="value" property="value"/>
<result column="tag" property="tag"/>
<result column="remark" property="remark"/>
<result column="num" property="num"/>
</resultMap>
<sql id="selectConfigVo">
select id, `key`, `value` , `tag` , remark , num from config_data
</sql>
<select id="selectTById" parameterType="Long" resultMap="ConfigDataResult">
<include refid="selectConfigVo"/>
where id = #{id}
</select>
</mapper>
完活
OK咱们的搭建就完成了,非常的简单啊!
总结
一定要多思考,如果人永远待在舒适圈的话,人永远不会成长。共勉。
觉得作者写的不错的,值得你们借鉴的话,就请点一个免费的赞吧!这个对我来说真的很重要。૮(˶ᵔ ᵕ ᵔ˶)ა