使用dockercompose搭建springboot-mysql-nginx应用

2020-06-17 06:18:06易采站长站整理

上篇使用docker构建spring-boot应用,是把编译好的jar包构建到镜像中。

这篇是把spring-boot连同数据库,做为一组docker服务运行起来。

这里只是把自己操作记录下来,完整运行的代码见“参考”中的引用1中的内容。
(我修改mysql映射目录及获取远程ip的方法)

主要步骤:

搭建简单的springboot应用
应用添加docker下支持
编写dockercompose配置文件
实践运行

搭建简单的springboot应用

做一个web应用,统计访问该站点的ip次数。

并存储到mysql数据库中,这里使用jpa的方式访问数据库。

依赖


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>

web,jpa,mysql,tset库的依赖


<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

配置文件


spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true

核心代码


@RestController
public class VisitorController{
@Autowired
private VisitorRepository repository;
@RequestMapping("/")
public String index(HttpServletRequest request)
{
String ip= request.getHeader("X-Real-IP");
if(ip== null || "".equals(ip))
{
ip = request.getRemoteAddr();
}
Visitor visitor = repository.findByIp(ip);
if(visitor == null)
{
visitor = new Visitor();
visitor.setIp(ip);
visitor.setTimes(1L);
}
else
{
visitor.setTimes(visitor.getTimes()+1);
}
repository.save(visitor);