Tag: spring

如何使用注释在Spring 4中重新加载属性文件?

我有一个简单的应用程序,我使用几个属性文件来获取其他用户编辑的内容(链接到网站等)。 我加载属性的类看起来像这样: @Configuration @PropertySource(“classpath:salestipsWhitelist.properties”) public class SalestipsWhitelist { @Autowired Environment env; public Environment getEnv() { return env; } public void setEnv(Environment env) { this.env = env; } @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); } } 一些属性文件: UPS_MPP_M_L=True UPS_MPP_M_M=True UPS_MPP_M_MP=True UPS_MPP_M_S=True 这工作正常,但如果我对属性文件进行更改,我必须重新加载应用程序以可视化所做的任何更改。 如果我将位置移动到磁盘而不是类路径,是否有可能定期或手动重新加载? 我不希望在更改时自动完成此操作,因为我想控制何时完成/更新。

Spring中的Websocket身份validation和授权

我一直在努力用Spring-Security正确实现Stomp(websocket) 身份validation和授权 。 对于后代,我会回答我自己的问题,提供指导。 问题 Spring WebSocket文档(用于身份validation)看起来不清楚ATM(恕我直言)。 我无法理解如何正确处理身份validation和授权 。 我想要的是 使用登录名/密码validation用户。 防止匿名用户通过WebSocket进行连接。 添加授权层(用户,管理员,…)。 Principal可以在控制器中使用。 我不想要的 在HTTP协商端点上进行身份validation(因为大多数JavaScript库不会与HTTP协商调用一起发送身份validation标头)。

IllegalArgumentException:必须至少存在一个JPA元模型

从春季rest开始,我得到了以下错误 org.springframework.beans.factory.BeanCreationException:创建名为’jpaMappingContext’的bean时出错:init方法的调用失败; 嵌套exception是java.lang.IllegalArgumentException:必须至少存在一个JPA元模型! 在org.springframework上的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1595)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]。 org.springframework.beans.factory.support上的beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:566)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject中的.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] (AbstractBeanFactory.java:304)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java: 230)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.beans.factory.suppo orrt.springframework.beans.factory.support.AbstractBeanFactory.getBean中的rt.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] (AbstractBeanFactory.java:195)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java: 725)〜[spring-beans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)〜[spring-context在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)〜[spring-context-5.0.0.BUILD- SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)〜[spring-boot-2.0 or.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT]在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:736)[spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0 .O.BUILD-SNAPSHOT] org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369)[spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT]在org。 springframework.boot.SpringApplication.run(SpringApplication.java:313)[spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT]在org.springframework.boot.SpringApplication.run(SpringApplication。 java:1161)[spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT]在org.springframework.boot.SpringApplication.run(SpringApplication.java:1150)[spring-boot-2.0 com.java.app.QuickPollApplication.main中的.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] [classes /:na]引起:java.lang.IllegalArgumentException:At必须至少有一个JPA元模型! org.springframework.util.Assert.notEmpty(Assert.java:438)〜[spring-core-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] org.springframework.data.jpa。 mapping.JpaMetamodelMappingContext。(JpaMetamodelMappingContext.java:52)〜[spring-data-jpa-1.11.0.BUILD-SNAPSHOT.jar:na] at org.springframework.data.jpa.repository.config.JpaMetamodelMappingContextFactoryBean.createInstance(JpaMetamodelMappingContextFactoryBean。 java:71)〜[spring-data-jpa-1.11.0.BUILD-SNAPSHOT.jar:na] at org.springframework.data.jpa.repository.config.JpaMetamodelMappingContextFactoryBean.createInstance(JpaMetamodelMappingContextFactoryBean.java:26)〜[spring -data-jpa-1.11.0.BUILD-SNAPSHOT.jar:na] at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:134)〜[spring-beans-5.0.0.BUILD- SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1654)〜[spring-be ans-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1591)〜[spring-beans-5.0.0 .BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] …省略了16个常用帧 使用以下代码 @SpringBootApplication @RestController public class QuickPollApplication { public static void main(String[] args) { SpringApplication.run(QuickPollApplication.class, args); } @RequestMapping(value = […]

公共和私人资源使用不同的路径Jersey + Spring启动

我正在使用Spring boot + Jersey + Spring安全性,我想拥有公共和私有端点,我想要一个架构如下: / rest – 我的根上下文 / public – 我想将我的公共端点放在这个上下文中,它必须在/rest/public/pings类的根上下文中 / private – 我想将我的私有端点放在这个上下文中,它必须在/rest/private/accounts类的根上下文中 我的配置如下: 泽西配置: @Configuration @ApplicationPath(“/rest”) public class RestConfig extends ResourceConfig { public RestConfig() { register(SampleResource.class); } } Spring安全配置: @Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { …….. protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers(“/rest/public/**”).permitAll(); http.antMatcher(“/rest/**”).authorizeRequests().anyRequest().fullyAuthenticated().and().httpBasic(); http.csrf().disable(); } } […]

Spring v3没有为元素’mvc:resources’找到声明

目前正在运行 Tomcat:v6 Spring Tools Suite:v2.7.2 Spring框架:spring-webmvc-3.0.5 Servlet XML web.xml部分代码 duckapp / Servlet目的 web.xml将所有URL映射到servlet,但mvc:resources映射静态文件除外。 错误 cvc-complex-type.2.4.c:匹配的通配符是strict,但是没有找到元素’mvc:annotation-driven’的声明。 app-servlet.xml / app / www / WEB-INF cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素’mvc:resources’的声明。 app-servlet.xml / app / www / WEB-INF 已知的问题 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd不包含元素资源 如果被http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd取代仍然无效,可能无法正常工作根据spring 3.05的jar文件 mvc:资源出现在spring v3.0.4中,但没有新的xsd 题 如何修复编译错误以使mvc:资源正常工作? 我一直在挖掘大约2个小时,还没有可靠的答案……

JSF 2使用@ManagedProperty注入Spring bean / service而没有xml

我想使用jsf注释和一些spring注释将spring bean / service注入jsf托管bean。 (在jsf bean上我只想使用jsf注释)我不想使用像@named / @inject这样的注释。 我试图在网上找到一个解决方案,但没有任何运气。 例 @ManagedBean @ViewScoped public class MyBean { @ManagedProperty(value = “#{mySpringBean}”) private MySpringBean mySpringBean; public void setMySpringBean(MySpringBean mySpringBean) { this.mySpringBean = mySpringBean; } public void doSomething() { //do something with mySpringBean } } 没有使用xml就可以实现这样的function。 例如,我不想使用类似的东西 FacesContextUtils.getWebApplicationContext(context).getBean(“MySpringBean”); 或者在faces-config.xml myBean com.mytest.MyBean view mySpringBean #{mySpringBean} 类似于上面的注释,并没有定义所有jsf bean /属性和config xml文件中每个bean的spring beans […]

找不到springframework的标签库描述符

我试图遵循spring JPetStore的例子,但是在引用lib标签spring的行中的JSP页面中出现错误: 找不到“http://www.springframework.org/tags”的标记库描述符 这个库的URL是什么? 有没有办法避免直接依赖这个URL? 提前致谢

Spring批量远程分块和远程分区之间的区别

spring批量远程分块和远程分区有什么区别? 我无法理解Spring批处理中远程分块和远程分区之间的区别。 有人可以解释一下吗?

具有分页的Spring-Data FETCH JOIN不起作用

我正在尝试使用HQL使用JOIN FETCH获取我的实体和子实体,如果我想要所有结果,这可以正常工作但如果我想要一个页面则不是这样 我的实体是 @Entity @Data public class VisitEntity { @Id @Audited private long id; . . . @OneToMany(cascade = CascadeType.ALL,) private List comments; } 因为我有数百万次访问,我需要使用Pageable,我想在单个数据库查询中获取注释,如: @Query(“SELECT v FROM VisitEntity v LEFT JOIN FETCH v.comments WHERE v.venue.id = :venueId and …” ) public Page getVenueVisits(@Param(“venueId”) long venueId,…, Pageable pageable); 该HQL调用抛出以下exception: Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: query specified […]

如何停止使用@Scheduled注释启动的计划任务?

我使用Spring Framework的@Scheduled注释创建了一个简单的计划任务。 @Scheduled(fixedRate = 2000) public void doSomething() {} 现在我想在不再需要时停止这项任务。 我知道在这个方法的开头可以有一个替代方法来检查一个条件标志,但是这不会停止执行这个方法。 是否有Spring提供什么来阻止@Scheduled任务?