最近和一些朋友接了一个编写炒数字货币的辅助小工具的开发。这也是我除学校里做的小项目外,第一次完全负责一个项目的后台框架搭建,故在此记录一下,方便日后查看。
目录
一.整合springMVC+mybatis
springMVC的话就不用过多介绍了,是一个轻量级的框架,使用了MVC的设计模式。在spring boot中有很好的集成这个框架,我们要做的只需要将它的依赖加入到我们的项目中就行了,并导入json依赖,将返回参数转换为json对象。如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 返回参数转为json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
然后在代码中添加controller层和service层
运行时项目,打开http://localhost:8080/testcontroller/test?userId=1
出现错误,找不到controller 和service,解决办法:
将其他的类放到启动类的子包下
完成后打开网页
完成第一步,接下来整合mybatis,首先添加jar包
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
项目框架,以及需要配置的文件
mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
</typeAliases>
</configuration>
mybatisconfig引入repository
@Configuration
@MapperScan(basePackages = {"com.bvhealth.mhelper.customer.repository"})
public class MyBatiesConfig {
}
数据库配置
spring.datasource.driver=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://xxxxxx:3306/xxxx?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=MyNewPass4!
#==================mybaties Config Start==================
#ORM Bean Package
mybatis.type-aliases-package=com.bvhealth.mhelper.customer.model
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#==================mybaties Config End ==================
然后编写测试的mapper和dao层
二.整合swagger和swagger-ui
同样,首先导入jar包:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.0.2</version>
</dependency>
在config目录下添加swagger配置文件:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
public static final String SWAGGER_SCAN_BASE_PACKAGE = "com.bvhealth.mhelper.customer.controller";
public static final String VERSION = "1.0.0";
ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger API")
.description("This is to show api description")
.license("Apache 2.0")
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
.termsOfServiceUrl("")
.version(VERSION)
.contact(new Contact("","", "weiqi.email@qq.com"))
.build();
}
@Bean
public Docket customImplementation(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))
.build()
// .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
// .directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
.apiInfo(apiInfo());
}
}
实际使用:
@RestController
@Api(value = "Test", description = "test the swagger API")
@RequestMapping(value = "/test")
public class TestController {
@Autowired
private ITestService testService;
@ApiOperation(value = "get city by state", notes = "Get city by state", response = AB.class)
@RequestMapping(value = "/firstdemo",method = RequestMethod.GET)
public AB test(@RequestParam String A){
return testService.test(A);
}
}
完成后访问http://localhost:8080/swagger-ui.html#!
参考:http://www.cnblogs.com/woshimrf/p/5863318.html#_caption_3
三.加入log4j的日志管理和junit单元测试
导入jar包
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
添加log4j.properties日志配置文件
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d-[%L] %5p [%t %c] - %m%n
日志使用
@Service
public class TestServiceImpl implements ITestService {
private Logger logger = LoggerFactory.getLogger(TestServiceImpl.class);
@Autowired
ABRepository aBRepository;
@Override
public AB test(String A) {
logger.info("haha");
return aBRepository.selectByPrimaryKey(A);
}
}
单元测试demo:
public class Test {
@org.junit.Test
public void test() {
System.out.println("Task one do.");
}
}
ok,大功告成,至此,一个整合了spring boot,springMVC,mybatis,swagger的框架就完成了。
参考:https://blog.csdn.net/sxdtzhaoxinguo/article/details/78456810?locationNum=4&fps=1