小编Ale*_*sta的帖子

Spring引导嵌入式容器或war文件在外部容器中进行生产

我完全能够在两种情况下配置spring boot,这里的问题是哪些更强大并且更推荐,因为我没有在spring boot文档中找到在生产环境中部署它的推荐方法,我对使用嵌入式容器的担忧是:

  1. 如果我想将其设置为Windows或Linux服务,那么jar文件是最佳选择吗?
  2. 如果我使用jar文件,我将无法重新启动服务器.
  3. 也许在将来我需要在同一容器中使用更多应用程序.
  4. 如果我重新启动机器,我必须再次执行java -jar.

一般的问题是哪个更好地使用jar文件并在生产中将其作为java -jar jarname.jar执行,或者将包装更改为war将tomcat设置为提供并在空的tomcat中设置生成的war.

我希望你能帮助我.

- -编辑 - -

很多时候,答案取决于,这适用于普通的Web应用程序或其他Web服务.

java spring tomcat maven spring-boot

22
推荐指数
3
解决办法
5779
查看次数

使用不同的路径为公共和私人资源Jersey + Spring启动

我正在使用Spring boot + Jersey + Spring安全性,我想拥有公共和私有端点,我想要一个架构如下:

  • / rest - 我的根上下文
  • / public - 我想将我的公共端点放在这个上下文中,它必须在根上下文中/rest/public/pings
  • / private - 我想将我的私有端点放在这个上下文中,它必须在根上下文中/rest/private/accounts

我的配置如下:

泽西配置:

@Configuration
@ApplicationPath("/rest")
public class RestConfig extends ResourceConfig {
    public RestConfig() {
        register(SampleResource.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

Spring安全配置:

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

........

    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/rest/public/**").permitAll();
        http.antMatcher("/rest/**").authorizeRequests().anyRequest().fullyAuthenticated().and().httpBasic();
        http.csrf().disable();
    }

}
Run Code Online (Sandbox Code Playgroud)

问题是如何在my/rest上下文中注册两个应用程序路径,一个用于/ public,另一个用于/ private?

注意:我尝试创建另一个ResourceConfig,如下所示:

@Configuration
@ApplicationPath("/rest/public")
public class RestPublicConfig extends ResourceConfig{
    public RestPublicConfig() {
        register(PingResource.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了下一个错误:

 No qualifying bean …
Run Code Online (Sandbox Code Playgroud)

java rest spring jersey spring-boot

12
推荐指数
2
解决办法
3523
查看次数

如果我不关闭 kafka 生产者会发生什么

我正在处理 xml,我需要为每条记录发送一条消息,当我收到最后一条记录时,我关闭了 kafka 生产者,这里的问题是 kafka 生产者的发送方法是异步的,因此,有时当我关闭生产者时它trowsjava.lang.IllegalStateException: Cannot send after the producer is closed.我读的地方,我可以离开了制片人开放。我的问题是:这意味着什么,或者是否有更好的解决方案。

- -编辑 - -

<list>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
  <element attr1="" att2="" attr3=""/>
...
</list>
Run Code Online (Sandbox Code Playgroud)

想象以下场景:

  • 我们读取标签并创建 kafka 生产者
  • 我们读取每个元素的属性,生成一个 json 对象并使用 send 方法将其发送到 kafka。- 当我们读取元素时,我们在生产者中调用 close 方法

问题是元素的数量可能是 80k,因此,有时当我们调用 disconnect 方法时,它会继续以异步方式发送消息。所以我们需要先调用flush方法,但是会影响性能

java apache-kafka kafka-producer-api

7
推荐指数
1
解决办法
1万
查看次数

使用关系创建REST端点的正确方法是什么

我想创建一些端点来检索每个国家/地区的异常,startTime和endTime,但我不知道构建端点的正确方法是什么,我一直在与我的同事交谈,我们对如何做到这一点有不同的意见:

选项1路径参数

  • / countries/{countryCode}/exceptions?startTime = {value}&endTime = {value} :在特定时间范围内获取每个国家/地区的所有例外情况

  • / countries/*/exceptions?startTime = {value}&endTime = {value} :获取特定时间范围内的所有异常

选项2查询参数

  • / exceptions?country = {countryCode}&startTime = {value}&endTime = {value}:在特定时间范围内获取每个国家/地区的所有例外情况

  • / exceptions?startTime = {value}&endTime = {value} :获取特定时间范围内的所有异常

选项3路径参数以不同的顺序排列

  • / exceptions/countries/{countryCode}?startTime = {value}&endTime = {value}:在特定时间范围内获取每个国家/地区的所有例外情况

  • / exceptions?startTime = {value}&endTime = {value}:获取特定时间范围内的所有异常

所有3个选项都有利有弊,但我们不同意哪个是最佳做法.问题是创建这些端点的最佳选择是什么.

rest web-services

7
推荐指数
1
解决办法
213
查看次数

Java中的数组是什么类

数组是对象,所有对象都来自一个类.如果我执行以下代码:

public class Test {
    public static void main(String[] args) {
        String str = "Hello";
        System.out.println(str.getClass());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是class java.lang.String.

但是如果我执行以下内容:

public class Test {
    public static void main(String[] args) {
        int arr[] = new int[10];
        System.out.println(arr.getClass());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是class [I.

我的问题是:

  1. 数组的类是什么?
  2. 为什么结果呢?
  3. 如果我想使用instanceof操作员我应该如何使用它?如果我执行System.out.println(arr instanceof Object);,它完美地工作.

java arrays

6
推荐指数
1
解决办法
150
查看次数

SOAPExceptionImpl错误响应:404如果我不执行soapMessage.writeTo(System.out),则找不到;

我在java中创建一个Soap客户端,我遇到了一个奇怪的错误.

抽象客户端

public abstract class AbstractSoapClient {

    private ServerContext context;

    private String path;

    private static final String WSSE = "";
    private static final String CURL = "";
    private static final String CURL_PASSWORD = "";
    private static final String SECURITY_NODE = "";
    private static final String USERNAME_TOKEN = "";
    private static final String USERNAME_NODE = "";
    private static final String PASSWORD_NODE = "";

    public AbstractSoapClient(ServerContext context) {
        this.context = context;
    }

    protected SOAPMessage createRequest(String path) throws SOAPException {
        this.path = assembleEndpoint(path); …
Run Code Online (Sandbox Code Playgroud)

java soap soap-client saaj

6
推荐指数
1
解决办法
4202
查看次数

在Kafka Connect源连接器中使用消息密钥

我正在使用Kafka connect JDBC源连接器从数据库中的视图中读取并将其发布到kafka上,效果很好。

我的用例是用户可以创建多个对象,并且对象的顺序在我的应用程序中很重要。我想将用户ID用作发布到主题中的所有消息的消息键,以维持其顺序。

我的问题是如何在Kafka Connect源连接器中定义消息密钥?

apache-kafka apache-kafka-connect

5
推荐指数
1
解决办法
1195
查看次数

JAVA:如何检查对象数组中的所有对象是否是子类的对象?

我有一个带对象的数组.现在我想检查所有这些对象是否是MyObject的实例.

有没有比这更好的选择:

boolean check = true;
for (Object o : justAList){
  if (!(o instanceof MyObject)){
    check = false;
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

java arrays

2
推荐指数
1
解决办法
109
查看次数