Questions tagged «spring»

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

7
Spring Boot添加Http请求拦截器
在Spring Boot应用程序中添加HttpRequest拦截器的正确方法是什么?我想做的是记录每个HTTP请求的请求和响应。 Spring Boot文档完全没有涵盖该主题。(http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/) 我发现了一些有关如何对较早版本的spring执行相同操作的Web示例,但这些示例与applicationcontext.xml一起使用。请帮忙。

8
Spring Cache @Cacheable-从同一个bean的另一个方法调用时不起作用
从同一bean的另一个方法调用缓存的方法时,Spring缓存不起作用。 这是一个清楚地说明我的问题的示例。 组态: <cache:annotation-driven cache-manager="myCacheManager" /> <bean id="myCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="myCache" /> </bean> <!-- Ehcache library setup --> <bean id="myCache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:shared="true"> <property name="configLocation" value="classpath:ehcache.xml"></property> </bean> <cache name="employeeData" maxElementsInMemory="100"/> 缓存的服务: @Named("aService") public class AService { @Cacheable("employeeData") public List<EmployeeData> getEmployeeData(Date date){ ..println("Cache is not being used"); ... } public List<EmployeeEnrichedData> …
107 java  spring  caching  ehcache 

5
当找到多个匹配的bean时,Spring如何按名称自动装配?
假设我有这样的接口: interface Country {} class USA implements Country {} class UK implements Country () 这是配置xml的代码段: <bean class="USA"/> <bean id="country" class="UK"/> <bean id="main" class="Main"/> 如何控制下面自动关联的依赖项?我想要英国。 class Main { private Country country; @Autowired public void setCountry(Country country) { this.country = country; } } 我正在使用Spring 3.0.3.RELEASE。
106 spring 

17
Spring Hibernate-无法获得当前线程的事务同步会话
我使用spring + hibernate创建了一个应用程序,但始终会收到此错误。这是我第一个使用hibernate的应用程序,我阅读了一些指南,但无法解决此问题。我在哪里做错了? 这是我的应用程序的代码 ott 05, 2014 4:03:06 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh Informazioni: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1eab16b: startup date [Sun Oct 05 16:03:06 CEST 2014]; root of context hierarchy ott 05, 2014 4:03:06 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions Informazioni: Loading XML bean definitions from class path resource [springConfig.xml] ott 05, 2014 4:03:08 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> …

4
Spring中@Valid和@Validated之间的区别
Spring支持两种不同的验证方法:Spring验证和JSR-303 bean验证。可以通过定义一个Spring验证程序来使用这两个验证程序,该验证程序委派给其他委托程序,包括bean验证程序。到目前为止,一切都很好。 但是,在注释方法以实际请求验证时,则是另一回事了。我可以这样注释 @RequestMapping(value = "/object", method = RequestMethod.POST) public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) { 或像这样 @RequestMapping(value = "/object", method = RequestMethod.POST) public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) { 在这里,@Valid是javax.validation.Valid,而@Validated是org.springframework.validation.annotation.Validated。后者的文档说 JSR-303的Valid的变体,支持验证组的规范。设计用于方便使用Spring的JSR-303支持,但不适用于JSR-303。 这并没有太大帮助,因为它无法确切说明两者的不同之处。如果有的话。两者似乎都对我来说很好。

12
如何管理Spring中过滤器中引发的异常?
我想使用通用的方式来管理5xx错误代码,特别是当整个Spring应用程序中的db关闭时。我想要一个漂亮的错误json而不是堆栈跟踪。 对于控制器,我有一个@ControllerAdvice针对不同异常的类,这也捕获了db在请求中间停止的情况。但这并不是全部。我也碰巧有一个自定义CorsFilter扩展名OncePerRequestFilter,在那里,当我打电话给doFilter我时CannotGetJdbcConnectionException,它将不受的管理@ControllerAdvice。我在网上阅读了几件事,这只会让我更加困惑。 所以我有很多问题: 我是否需要实施自定义过滤器?我找到了,ExceptionTranslationFilter但这只能处理AuthenticationException或AccessDeniedException。 我想实现自己的实现HandlerExceptionResolver,但这使我感到怀疑,我没有任何自定义异常要管理,必须有比这更明显的方法。我还尝试添加一个try / catch并调用的实现HandlerExceptionResolver(应该足够好,我的例外没有什么特别的),但这在响应中不返回任何内容,我得到一个状态200和一个空主体。 有什么好办法解决这个问题吗?谢谢

16
Jdbctemplate查询字符串:EmptyResultDataAccessException:错误的结果大小:预期为1,实际为0
我正在使用Jdbctemplate从数据库中检索单个String值。这是我的方法。 public String test() { String cert=null; String sql = "select ID_NMB_SRZ from codb_owner.TR_LTM_SLS_RTN where id_str_rt = '999' and ID_NMB_SRZ = '60230009999999'"; cert = (String) jdbc.queryForObject(sql, String.class); return cert; } 在我的情况下,完全可以在查询中不击中,所以我的问题是如何解决以下错误消息。 EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 在我看来,我应该只返回null而不是抛出异常。我怎样才能解决这个问题?提前致谢。

11
Spring获取当前的ApplicationContext
我将Spring MVC用于我的Web应用程序。我的豆子写在“ spring-servlet.xml”文件中 现在我有一个课MyClass,我想用Spring bean访问这个课。 在spring-servlet.xml我写了以下 <bean id="myClass" class="com.lynas.MyClass" /> 现在我需要使用 ApplicationContext ApplicationContext context = ?? 这样我就可以 MyClass myClass = (MyClass) context.getBean("myClass"); 这该怎么做??

9
如何在生产环境中运行spring boot可执行jar?
Spring Boot的首选部署方法是通过其中包含tomcat的可执行jar文件。 它从简单开始java -jar myapp.jar。 现在,我想将该jar部署到EC2上的linux服务器上,是否丢失了某些东西,还是真的需要创建一个初始化脚本来正确地将应用程序作为守护程序启动? 如果我只是简单地调用,java -jar则应用程序在注销时死亡。 我可以在屏幕或nohup中启动它,但这不是很好,并且在服务器中重新启动会迫使我登录并手动启动该过程。 那么,在Spring Boot中已经有一些任务要做吗?


10
如何在Jackson的自定义解串器中调用默认解串器
我在Jackson的自定义解串器中遇到问题。我想访问默认的序列化器以填充要反序列化的对象。填充之后,我将执行一些自定义操作,但首先,我想使用默认的Jackson行为反序列化对象。 这是我目前拥有的代码。 public class UserEventDeserializer extends StdDeserializer<User> { private static final long serialVersionUID = 7923585097068641765L; public UserEventDeserializer() { super(User.class); } @Override @Transactional public User deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); JsonNode node = oc.readTree(jp); User deserializedUser = null; deserializedUser = super.deserialize(jp, ctxt, new User()); …

6
JdbcTemplate queryForInt / Long在Spring 3.2.2中已弃用。应该用什么代替?
Spring 3.2中不推荐使用JdbcTemplate中的queryforInt / queryforLong方法。我找不到使用这些方法替换现有代码的最佳实践的理由或理由。 典型方法: int rowCount = jscoreJdbcTemplate.queryForInt( "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?", playerNameKey.toUpperCase(), teamNameKey.toUpperCase() ); 确定以上方法需要重新编写如下: Object[] params = new Object[] { playerNameKey.toUpperCase(), teamNameKey.toUpperCase() }; int rowCount = jscoreJdbcTemplate.queryForObject( "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?", …

16
依赖项注入容器的好处是什么?
我了解依赖注入本身的好处。让我们以Spring为例。我还了解其他Spring功能(如AOP,不同类型的助手等)的好处。我只是想知道XML配置的好处是什么,例如: <bean id="Mary" class="foo.bar.Female"> <property name="age" value="23"/> </bean> <bean id="John" class="foo.bar.Male"> <property name="girlfriend" ref="Mary"/> </bean> 与普通的旧Java代码相比,例如: Female mary = new Female(); mary.setAge(23); Male john = new Male(); john.setGirlfriend(mary); 它更容易调试,检查编译时间,并且仅懂Java的任何人都可以理解。那么,依赖注入框架的主要目的是什么?(或一段显示其优点的代码。) 更新: 如果 IService myService;// ... public void doSomething() { myService.fetchData(); } 如果存在多个,IoC框架如何猜测要注入的myService的哪种实现?如果给定接口只有一个实现,而我让IoC容器自动决定使用它,则在出现第二个实现后,它将被破坏。并且,如果有意仅使用一种可能的接口实现,则无需注入该接口。 看到IoC的一小部分配置显示出它的好处,这将真的很有趣。我已经使用Spring一段时间了,我无法提供这样的示例。而且我可以显示单行代码,这些代码演示了休眠,dwr和其他我使用的框架的好处。 更新2: 我意识到IoC配置可以更改而无需重新编译。真的是个好主意吗?我可以理解,当有人想更改数据库凭据而无需重新编译时-他可能不是开发人员。在您的实践中,除开发人员外,其他人多久更改一次IoC配置?我认为对于开发人员而言,无需重新编译该特定类,而无需更改配置。对于非开发人员,您可能希望使他的生活更轻松,并提供一些更简单的配置文件。 更新3: 接口之间的映射及其具体实现的外部配置 使它具有延展性有什么好处?您不必将所有代码都放在外部,但可以肯定地将代码放在ClassName.java.txt文件中,可以即时读取和手动进行编译-哇,您避免了重新编译。为什么要避免编译? 节省编码时间,因为您以声明方式而不是在过程代码中提供映射 我知道有时声明式方法可以节省时间。例如,我仅声明一次bean属性与DB列之间的映射,并且hibernate在加载,保存,构建基于HSQL的SQL等方式时使用此映射。这就是声明性方法的工作原理。在Spring的情况下(在我的示例中),声明具有更多的行,并且与相应的代码具有相同的表现力。如果有这样的声明比代码短的例子-我希望看到它。 控制反转的原理使单元测试变得容易,因为您可以用假的实例替换实际的实现(例如用内存中的实例替换SQL数据库) …

5
在多个项目/模块中使用多个属性文件(通过PropertyPlaceholderConfigurer)
我们目前正在编写一个应用程序,该应用程序分为多个项目/模块。例如,让我们采用以下模块: myApp-DAO myApp-jabber 每个模块都有其自己的Spring上下文xml文件。对于DAO模块,我有一个PropertyPlaceholderConfigurer,它读取带有必需的数据库连接参数的属性文件。在jabber模块中,我还有一个用于jabber连接属性的PropertyPlaceHolderConfigurer。 现在出现了主要应用程序,其中包括myApp-DAO和myApp-jabber。它读取所有上下文文件并启动一个大的Spring上下文。不幸的是,每个上下文似乎只能有一个PropertyPlaceholderConfigurer,因此,无论哪个模块首先加载,都能够读取其连接参数。另一个引发异常,并显示诸如“无法解析占位符'jabber.host'”之类的错误。 我有点理解问题所在,但是我真的不知道解决方案-还是我的用例的最佳实践。 我将如何配置每个模块,以便每个模块都能加载自己的属性文件?现在,我已经将PropertyPlaceHolderConfigurer从单独的上下文文件中移出并将它们合并到主应用程序的上下文中(使用单个PropertyPlaceHolderConfigurer加载所有属性文件)。但是这很糟糕,因为现在使用dao模块的每个人都必须知道,他们需要在上下文中使用PropertyPlaceHolderConfigurer ..以及dao模块中的集成测试失败等。 我很想知道来自stackoverflow社区的解决方案/想法。
104 java  spring  properties 


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.