小编dim*_*imi的帖子

Spring Data Rest:未调用RepositoryEventHandler方法

我正在尝试将Spring Data REST文档中描述的RepositoryEventHandler添加到下面显示的REST存储库:

@RepositoryRestResource(collectionResourceRel = "agents", path = "/agents")
public interface AgentRepository extends CrudRepository<Agent, Long> {
    // no implementation required; Spring Data will create a concrete Repository
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个AgentEventHandler:

@Component
@RepositoryEventHandler(Agent.class)
public class AgentEventHandler {

    /**
     * Called before {@link Agent} is persisted 
     * 
     * @param agent
     */
    @HandleBeforeSave
    public void handleBeforeSave(Agent agent) {

        System.out.println("Saving Agent " + agent.toString());

    }
}
Run Code Online (Sandbox Code Playgroud)

并在@Configuration组件中声明它:

@Configuration
public class RepositoryConfiguration {

    /**
     * Declare an instance of the {@link AgentEventHandler}
     *
     * …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-rest

16
推荐指数
1
解决办法
9063
查看次数

Spring Security:访问servlet Filter中当前经过身份验证的User

我最近开始学习Spring Security,今天我踩到了这个基本的(我相信)问题:为什么我不能访问Servlet过滤器中的当前Principal,如下面的类所示:

package com.acme.test;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;

@Component
public class TestFilter implements Filter {

    /*
     * (non-Javadoc)
     * 
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub

    }

    /*
     * (non-Javadoc)
     * 
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
     * javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        SecurityContext …
Run Code Online (Sandbox Code Playgroud)

spring servlets spring-mvc spring-security

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

Java库维护进程池

我正在开发一个需要并发的Java守护进程:一个无限循环,它监听作业队列(redis)并将每个作业分配给一个worker.工作人员不一定要返回值.

我发现Executors非常有用,我使用ThreadPoolExecutor来维护许多工作线程.

但是,这些工作者运行的第三方代码需要尽可能隔离,避免共享静态属性.

我的问题:是否有任何Java库/框架提供类似于Executors的功能,例如:

  • 工人池
  • 自动调整池大小

..但产生进程而不是线程?

java concurrency multithreading executorservice threadpool

10
推荐指数
1
解决办法
2924
查看次数

Spring Data REST 中 HttpMessageNotReadableException 的自定义 ExceptionHandler

将无效的 JSON 发布到 Spring Data REST(版本 2.2.2)资源时,会抛出 HttpMessageNotReadableException 并返回以下 json:

{
    "cause": {
        "cause": {
            "cause": null,
            "message": "Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value\n at [Source: org.apache.catalina.connector.CoyoteInputStream@646d9de6; line: 2, column: 20]"
        },
        "message": "Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value\n at [Source: org.apache.catalina.connector.CoyoteInputStream@646d9de6; line: 2, column: 20] (through reference chain: gr.bytecode.exceptionhandling.domain.Book[\"name\"])"
    },
    "message": "Could not read JSON: …
Run Code Online (Sandbox Code Playgroud)

spring-mvc spring-data-rest

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

Spring Boot:使用嵌入式 Jetty 服务器时记录所有传入的 HTTP 请求?

我正在使用 Spring Boot 1.1.5.RELEASE 构建一个 Web 应用程序,并按照相关 Spring Boot 文档中的描述配置了一个嵌入式 Jetty 。

我想记录所有传入的 HTTP 请求,我能想到的唯一解决方案(在阅读Spring Boot 文档中的“如何配置 Jetty”之后)是引入一个 EmbeddedServletContainerCustomizer:

package com.acme.rest;

import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.NCSARequestLog;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.RequestLogHandler;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.jetty.JettyServerCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;


/**
 * blah blah
 * 
 * @author Dimi
 */
@Component
public class EmbededJettyConfig implements EmbeddedServletContainerCustomizer {

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer # customize
     */
    @Override
    public void customize(final …
Run Code Online (Sandbox Code Playgroud)

jetty spring-mvc embedded-jetty spring-boot

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