我正在尝试将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) 我最近开始学习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) 我正在开发一个需要并发的Java守护进程:一个无限循环,它监听作业队列(redis)并将每个作业分配给一个worker.工作人员不一定要返回值.
我发现Executors非常有用,我使用ThreadPoolExecutor来维护许多工作线程.
但是,这些工作者运行的第三方代码需要尽可能隔离,避免共享静态属性.
我的问题:是否有任何Java库/框架提供类似于Executors的功能,例如:
..但产生进程而不是线程?
将无效的 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 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) spring-mvc ×3
java ×2
spring ×2
concurrency ×1
jetty ×1
servlets ×1
spring-boot ×1
spring-data ×1
threadpool ×1