小编Dar*_*arz的帖子

Eclipse与IntelliJ热部署

我的app配置:Tomcat 8,Spring,Spring MVC,Hibernate.

在Eclipse中,我创建了Tomcat Server,并将我的应用程序添加到资源中.JSP,JS,CSS和JAVA类热部署就像这样工作.

在IntelliJ中,我配置了Tomcat 8 Server.在部署选项卡中我添加了myapp:war exploded.我启用On 'update' actionUpdate classes and resources,也启用了On frame deactivation: Update classes and resources.JSP,JS,CSS热插拔就是这样的.Java类没有.

我也检查过了 Settings > Build, exection, deployment > Compiler > Make project automatically

PS.我知道我可以使用JRebel,但在Eclipse热部署中没有JRebel.为什么它在IntelliJ中不起作用?

java eclipse tomcat intellij-idea

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

Java Executors 中无界队列的用例是什么?

ExecutorsJava 工厂使用无界的待处理任务队列。例如,对于接受任务没有限制的Executors.newFixedThreadPool用途new LinkedBlockingQueue

public static ExecutorService newFixedThreadPool(int nThreads) {
  return new ThreadPoolExecutor(nThreads, nThreads,
                                0L, TimeUnit.MILLISECONDS,
                                new LinkedBlockingQueue<Runnable>());
}
Run Code Online (Sandbox Code Playgroud)

当新任务到达并且没有可用线程时,它会进入队列。任务可以无限期地添加到队列中,从而导致OutOfMemoryError.

实际上使用这种方法的场景是什么?为什么 Java 创建者不使用有界队列?我无法想象无界比有界更好的场景,但我可能会遗漏一些东西。有人可以提供一个体面的解释吗?最好的事物!

java multithreading executorservice

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

Java 8可选和flatMap - 出了什么问题?

一些代码:

public class Player {
    Team team;
    String name;
}

public class Team {
    List<Player> players;
}

public class Demo {

    @Inject
    TeamDAO teamDAO;

    @Inject
    PlayerDAO playerDAO;

    List<String> findTeamMatesNames(String playerName) {
        Optional<Player> player = Optional.ofNullable(playerDAO.get(playerName));

        return player.flatMap(p -> teamDAO.findPlayers(p.team))
            .map(p -> p.name)
            .orElse(Collections.emptyList());
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做?在flatMap方法中我收到错误"类型不匹配:无法从列表转换为可选"

我的目标是:

  1. 如果存在可选项,我想根据此可选对象属性获取项目列表

  2. 如果不存在可选项,我想返回空列表

java map optional java-8 flatmap

4
推荐指数
1
解决办法
6084
查看次数

如何在Spring Boot中设置嵌入式Jetty的Handler?

我可以在标准 Java 应用程序中轻松设置 Jetty 处理程序,如下所示:

public class Main {
   public static void main(String[] args) throws Exception {
       Main main = new Main();
       main.start();
   }

   private void start() throws Exception {
       Server server = new Server(9999);
       server.setHandler(new Handler());
       server.start();
       server.join();
   }
}

class Handler extends AbstractHandler {
   @Override
   public void handle(final String target, final Request baseRequest, final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException {
       // do something
   }
}
Run Code Online (Sandbox Code Playgroud)

如何以与带有嵌入式 Jetty 的 Spring Boot 类似的方式设置 Handler?当我尝试使用EmbeddedServletContainerCustomizerbean 时,我遇到了 …

java spring jetty spring-mvc

4
推荐指数
1
解决办法
2739
查看次数

将HTML表单架构保存到JSON

有没有办法将HTML表单架构保存到JSON?

例如,当我有这样的事情

<form>
First name:<br>
<input type="text" name="firstname">
<br>
Last name:<br>
<input type="text" name="lastname">
</form>
Run Code Online (Sandbox Code Playgroud)

我怎么能达到这样的目的:

[
  {
    field: 'input',
    type: 'text',
    name: 'firstname'
  },
  {
    field: 'input',
    type: 'text',
    name: 'lastname'
  },
]
Run Code Online (Sandbox Code Playgroud)

我不是说它必须是如上所述的精确输出,但我如何能够实现类似的东西呢?

html javascript forms json

3
推荐指数
1
解决办法
1092
查看次数

Java 8-为什么他们提供方法参考?

有什么更好的电话

names.stream().forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

names.stream().forEach(n -> System.out.println(n));
Run Code Online (Sandbox Code Playgroud)

尽管事实上您必须编写更少的代码?在Java 8中引入方法引用还有其他优点吗?

java lambda java-8

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

Spring集成测试-覆盖bean的惯用方式

如何在Spring(Boot)Integration Tests中以惯用方式覆盖bean?

到目前为止,我的源代码配置如下:

@Configuration
class ApplicationConfiguration {
  @Bean
  CarsRepository carsRepository() {
    // return some real sql db
  }
}
Run Code Online (Sandbox Code Playgroud)

并进行如下测试:

@SpringBootTest
class ApplicationISpec extends Specification {
  @Configuration
  @Import(Application.class)
  static class TestConfig {
    @Bean
    @Primary
    CarsRepository testsCarsRepository() {
      // return some in-memory repository
    }
  }

  def "it can do stuff with cars"() {
    // do some REST requests to application and verify it works
    // there is no need to make real calls to real DB
  }
}
Run Code Online (Sandbox Code Playgroud)

首先,测试bean testsCarsRepository方法必须与原始方法不同(这并不明显,也没有警告/错误)。但是最后一个问题是:在集成测试中用Spring覆盖bean的惯用方式是什么? …

spring spring-boot spring-boot-test

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