我有一个spring boot项目,里面有一些Rest API.我有两个自定义标题命名request_date
和tenant
分别.
我试图在拦截器中读取这些头的值,但它只读取值tenant
并返回null request_date
.
重要
当我在localhost上运行我的项目并调试代码时,我成功地读取了两个标头的值.
但是,当我在生产中部署我的应用程序并使用postman或其他客户端发出请求时,request_date
标头的值始终读为null.
我不确定这似乎是什么问题.我正在使用Spring boot v1.5.10.RELEASE
和JDK 1.8
注意:
input_date
.但是,它仍然读为null.以下是相关代码
TestInterceptor
public class TestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestDate = request.getHeader("request_date");
String tenant = request.getHeader("Tenant");
/*Perform some checks*/
return super.preHandle(request, response, handler);
}
}
Run Code Online (Sandbox Code Playgroud)
CorsFilter
public class ApiCorsFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse …
Run Code Online (Sandbox Code Playgroud) 我有一个 Spring Boot 项目,我想使用 docker 对其进行容器化。我有几个连接到同一个 MySql 服务器的 Spring Boot 应用程序。
我的 spring 应用程序需要完全设置数据库(即要创建的所有表以及要在某些表中插入一些数据)才能启动。
我正在使用Docker版本18.09.0和docker -compose版本1.23.1和 ubuntu 16.04 LTS
我有两个文件create.sql
和insert.sql
,我用它们来初始化应用程序要使用的数据库。
我使用命令创建图像docker-compose.yml
,它成功运行并创建图像。
我有以下问题。
我假设在使用 docker-compose 时,容器会在其所有依赖容器启动后立即启动。在我的 API 容器启动之前,有没有办法等待 mysql 服务器启动并准备好接受连接?
如果我选择为应用程序和 mysql 分别创建容器,而不使用 docker-compose,我如何确保我的应用程序连接到 mysql 容器?
有没有其他工具可以帮助我实现这一目标?
注意:
我曾尝试使用docker inspect <container_id>
查找 mysql 容器的 IpAddress 并使用它进行连接,但效果不佳。
以下是我用来创建图像的文件。
docker-compose.yml
文件。
version: '3'
services:
demo-mysql:
image: demo-mysql
build: ./demo-mysql
volumes:
- /mnt/data/mysql-data:/var/lib/mysql
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root …
Run Code Online (Sandbox Code Playgroud) 我有一个Spring Boot 2.1.13
(Java 8)项目,其中MySQL 8.0.21
包含mysql-connector-java version: 8.0.22
以下类。
@Entity
@Table(name = "user")
@JsonIgnoreProperties({"type", "location", "hibernateLazyInitializer", "handler"})
public class User implements java.io.Serializable {
private UserType userType;
private Location location;
private long id;
private String name;
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "usertypeid")
public UserType getUserType() {
return this.userType; …
Run Code Online (Sandbox Code Playgroud)