Questions tagged «spring»

Spring框架是用于Java平台上的应用程序开发的开源框架。它的核心是对基于组件的体系结构的丰富支持,目前它具有二十多个高度集成的模块。

17
JUnit测试在Eclipse中通过,但在Maven Surefire中失败
我已经使用JUnit 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们时(在构建过程中),它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及我从Maven获得的异常: PersonServiceTest.java package com.xyz.person.test; import static com.xyz.person.util.FjUtil.toFjList; import static junit.framework.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; import com.xyz.person.bo.Person; import com.xyz.person.bs.PersonService; import fj.Effect; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath*:personservice-test.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false) …


11
使用@ExceptionHandler处理Spring Security身份验证异常
我正在使用Spring MVC @ControllerAdvice并@ExceptionHandler处理REST Api的所有异常。对于Web mvc控制器抛出的异常,它工作正常,但对于Spring Security自定义过滤器抛出的异常,它不工作,因为它们在调用控制器方法之前运行。 我有一个自定义的spring安全过滤器,它执行基于令牌的身份验证: public class AegisAuthenticationFilter extends GenericFilterBean { ... public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { try { ... } catch(AuthenticationException authenticationException) { SecurityContextHolder.clearContext(); authenticationEntryPoint.commence(request, response, authenticationException); } } } 使用此自定义入口点: @Component("restAuthenticationEntryPoint") public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint{ public void commence(HttpServletRequest …

8
在群集环境中运行的Spring Scheduled Task
我正在编写一个具有cron作业的应用程序,该作业每60秒执行一次。该应用程序被配置为在需要时扩展到多个实例。我只想每60秒(在任何节点上)在1个实例上执行任务。开箱即用,我找不到解决方案,但令我惊讶的是,之前没有多次被问到。我正在使用Spring 4.1.6。 <task:scheduled-tasks> <task:scheduled ref="beanName" method="execute" cron="0/60 * * * * *"/> </task:scheduled-tasks>

4
Spring vs EJB。Spring可以代替EJB吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 由于Spring能够像EJB一样使用事务。对我来说,Spring能够代替使用EJB的需求。谁能告诉我使用EJB的其他优点是什么?
96 java  spring  ejb-3.0 


3
Spring Data的MongoTemplate和MongoRepository有什么区别?
我需要编写一个应用程序,可以使用spring-data和mongodb进行复杂的查询。我一直从使用MongoRepository开始,但是在复杂的查询中苦苦寻找实例或真正理解语法。 我说的是这样的查询: @Repository public interface UserRepositoryInterface extends MongoRepository<User, String> { List<User> findByEmailOrLastName(String email, String lastName); } 或使用基于JSON的查询,但由于语法不正确,因此尝试了多次尝试。即使在阅读了mongodb文档之后(由于语法错误,仍无法正常工作的示例)。 @Repository public interface UserRepositoryInterface extends MongoRepository<User, String> { @Query("'$or':[{'firstName':{'$regex':?0,'$options':'i'}},{'lastName':{'$regex':?0,'$options':'i'}}]") List<User> findByEmailOrFirstnameOrLastnameLike(String searchText); } 阅读完所有文档后,似乎mongoTemplate文档要好得多MongoRepository。我指的是以下文档: http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/ 您能告诉我使用什么更方便,更强大吗?mongoTemplate还是MongoRepository?两者都是成熟的,还是其中一个比另一个缺少更多的功能?

8
Spring Boot application.properties值未填充
我有一个非常简单的Spring Boot应用程序,正在尝试使用某些外部化配置。我尝试遵循spring boot文档中的信息,但是遇到了障碍。 当我在外部运行以下应用程序时,application.properties文件中的外部配置不会填充到Bean中的变量中。我确定我做的很蠢,谢谢您的建议。 MyBean.java(位于/ src / main / java / foo / bar /中) package foo.bar; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; @Component public class MyBean { @Value("${some.prop}") private String prop; public MyBean() { System.out.println("================== " + prop + "================== "); } } Application.java(位于/ src / main …

3
Spring:如何将HttpServletRequest注入到请求范围的bean中?
我正在尝试在Spring中建立一个请求范围的bean。 我已经成功设置好了,因此每个请求创建一次bean。现在,它需要访问HttpServletRequest对象。 由于该bean是每个请求创建一次的,所以我认为容器可以轻松地将请求对象注入到我的bean中。我怎样才能做到这一点 ?
95 java  spring  servlets 

8
Spring Boot @ResponseBody没有序列化实体ID
有一个奇怪的问题,无法弄清楚如何处理。有简单的POJO: @Entity @Table(name = "persons") public class Person { @Id @GeneratedValue private Long id; @Column(name = "first_name") private String firstName; @Column(name = "middle_name") private String middleName; @Column(name = "last_name") private String lastName; @Column(name = "comment") private String comment; @Column(name = "created") private Date created; @Column(name = "updated") private Date updated; …

4
JSR-303 @有效注释不适用于子对象列表
我的主要课程是 public class UserAddressesForm { @NotEmpty private String firstName; @NotEmpty private String lastName; private List<AddressForm> addresses; ... setters and getters public class AddressForm { @NotEmpty private String customName; @NotEmpty private String city; @NotEmpty private String streetAn; @NotEmpty private String streetHn; @NotEmpty private String addressCountry; @NotEmpty private String postCode; ... setters …
95 java  json  spring  spring-mvc  jsr 

7
@RequestBody MultiValueMap不支持内容类型'application / x-www-form-urlencoded; charset = UTF-8'
基于Spring @Controller的x-www-form-urlencoded问题的答案 我写了下面的@Controller方法 @RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST , produces = {"application/json", "application/xml"} , consumes = {"application/x-www-form-urlencoded"} ) public @ResponseBody Representation authenticate(@PathVariable("email") String anEmailAddress, @RequestBody MultiValueMap paramMap) throws Exception { if(paramMap == null || paramMap.get("password") == null) { throw new IllegalArgumentException("Password not provided"); } } 请求失败并出现以下错误 { "timestamp": 1447911866786, …

16
Spring ApplicationContext-资源泄漏:“上下文”从未关闭
在spring MVC应用程序中,我使用以下方法在服务类之一中初始化变量: ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/userLibrary.xml"); service = context.getBean(UserLibrary.class); UserLibrary是我在应用程序中使用的第三方工具。上面的代码为'context'变量生成警告。该警告如下所示: Resource leak: 'context' is never closed 我不明白警告。由于该应用程序是Spring MVC应用程序,因此在运行该应用程序时,我无法真正关闭/销毁该上下文,因为我引用该服务。警告到底想告诉我什么?

3
Akka或Reactor [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我正在启动一个新项目(基于Java)。我需要将其构建为模块化,分布式和弹性架构。 因此,我希望业务流程能够相互通信,可互操作且独立。 我现在看的是两个框架,除了年龄不同外,它们还表达两种不同的观点: 阿卡(http://akka.io) 反应堆(https://github.com/reactor/reactor) 选择上述框架之一时应该考虑什么? 据我到目前为止所知,Akka仍然以某种方式耦合在一起(以某种方式我必须“选择”我想向其发送消息的演员),但非常有弹性。当Reactor松动时(基于事件发布)。 有人可以帮助我了解如何做出正确的决定吗? 更新 在更好地回顾了Akka 的事件总线之后,我认为Akka已经包含了Reactor所表达的功能。 例如,可以在Akka中表示为https://github.com/reactor/reactor#events-selectors-and-consumers上记录的订阅和事件发布: final ActorSystem system = ActorSystem.create("system"); final ActorRef actor = system.actorOf(new Props( new UntypedActorFactory() { @Override public Actor create() throws Exception { return new UntypedActor() { final LoggingAdapter log = Logging.getLogger( getContext().system(), this); @Override public …

3
Spring BeanPostProcessor到底如何工作?
我正在研究Spring Core认证,我对Spring如何处理bean的生命周期,尤其是bean后处理器有疑问。 所以我有这个架构: 我很清楚这是什么意思: 在“ 装入Bean定义”阶段执行以下步骤: 的@Configuration类被处理和/或@Components被扫描和/或XML文件进行解析。 Bean定义已添加到BeanFactory(每个索引均在其ID下进行索引) 调用特殊的BeanFactoryPostProcessor bean时,它可以修改任何bean的定义(例如,用于属性-占位符值的替换)。 然后,在Bean创建阶段执行以下步骤: 默认情况下,每个Bean都急切地实例化(以正确的顺序创建并注入了依赖项)。 依赖项注入后,每个bean都会进入后期处理阶段,在该阶段中可能会进行进一步的配置和初始化。 在后期处理之后,bean被完全初始化并可以使用(通过其id进行跟踪,直到上下文被销毁) 好的,这对我来说很清楚,我也知道有两种类型的Bean后处理器: 初始化程序:如果有指示,则初始化Bean(即@PostConstruct)。 和所有其余的:其允许额外的配置和其之前或初始化步骤之后运行 我张贴这张幻灯片: 所以对我来说很清楚初始化器 bean后处理器是什么(它们是用@PostContruct注释注释的方法,这些方法在setter方法之后立即自动调用(因此在依赖项注入之后),我知道我可以使用执行一些初始化批处理(如上例中那样填充缓存)。 但是,到底哪个代表另一个bean后处理器呢?当我们说这些步骤在初始化阶段之前或之后执行时,这是什么意思? 因此,实例化了我的bean并注入了它的依赖项,因此初始化阶段完成了(通过执行@PostContruct带注释的方法)。我们说在初始化阶段之前使用Bean后处理器是什么意思?这意味着它发生在@PostContruct注释方法执行之前?这是否意味着它可能发生在依赖项注入之前(在调用setter方法之前)? 当我们说它是在初始化步骤之后执行时,我们到底是什么意思。这意味着它会在执行@PostContruct带注释的方法之后发生,还是什么? 我可以很容易地想到为什么我需要一个@PostContruct带注释的方法,但是我无法弄清楚另一种bean后处理器的典型示例,您能告诉我一些什么时候使用的典型示例吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.