在我的Spring Boot应用程序中,我想创建特定于环境的属性文件.战争中我的应用程序的打包类型,我在嵌入式tomcat中执行它.我使用sts并从sts本身执行main.
在上面的例子中,env-value的值为local/devl/test/prod
在哪里设置env值文件?对于local,我可以通过sts将其设置为jvm参数
谁在Spring Boot应用程序中读取application.properties.
如何加载特定于环境的属性文件?对于ex - 如果我在环境特定属性文件中设置数据库uid,pwd,schema等,那么数据源是否能够理解其中的属性?
我可以同时使用application.properties和application-local.properties文件吗?
我希望@Cacheable在没有参数的方法上有注释.在这种情况下,我使用@Cacheable如下
@Cacheable(value="usercache", key = "mykey")
public string sayHello(){
return "test"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我调用此方法时,它不会被执行,并且如下所示会出现异常
org.springframework.expression.spel.SpelEvaluationException:EL1008E:(pos 0):在'org.springframework.cache.interceptor.CacheExpressionRootObject'类型的对象上找不到属性或字段'mykey' - 可能不公开?
请建议.
在我的spring启动应用程序中,我配置了两个不同的MQQueueConnectionFactory实例(不同的id),因为它是应用程序的需要.为此,我添加了ibm客户端罐子.
我还在我的代码中添加了spring-jms依赖项,因为我想要JmsTemplate等类.添加此依赖项后,JmsAutoConfiguration在类路径中找到JmsTemplate并尝试配置bean.在这个过程中,它尝试注入ConnectionFactory类型的bean,这是代码失败的地方,我开始得到错误.以下是JmsAutoConfiguration的代码
@Configuration
@ConditionalOnClass(JmsTemplate.class)
@ConditionalOnBean(ConnectionFactory.class)
@EnableConfigurationProperties(JmsProperties.class)
@Import(JmsAnnotationDrivenConfiguration.class)
public class JmsAutoConfiguration {
@Autowired
private JmsProperties properties;
@Autowired
private ConnectionFactory connectionFactory;
@Autowired(required = false)
private DestinationResolver destinationResolver;
Run Code Online (Sandbox Code Playgroud)
我是否有机会随时关闭弹簧靴的JmsAutoconfiguration功能?如果没有,那么替代解决方案是什么?
在包装类型为war的Spring Boot应用程序中,我正在配置Spring MVC.据我所知,我们不必手动配置Dispatcher Servlet.但是,我用旧的web.xml样式我用来配置Dispatcher Servlet然后我用来传递contextClass和contextConfigLocation如下
<servlet>
<description>
</description>
<display-name>DispatcherServlet</display-name>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>contextClass</description>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<description>contextConfigLocation</description>
<param-name>contextConfigLocation</param-name>
<param-value>com.xxx.yyy.jdorderspringmvcweb.config.SpringMvcConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)
我相信这是为了表明SpringMvcConfig(我的Spring mvc配置的自定义类)是Spring MVC的配置类.
但是,在Spring boot中,如果自动配置Dispatcher Servlet,我如何将自定义类传递给调度程序Servlet?
在我的Spring Boot应用程序中,我的SpringMvcConfig类从WebMvcConfigurerAdapter扩展并使用@Configuration类进行注释
需要帮助...
我想在Spring Boot应用程序中实现Spring Security.我之前使用JavaConfig使用Spring 4.0应用程序完成了这项工作.但是,我发现给出的例子风格有些不同
就我而言,用户是预先认证的,我们有自己的授权机制,其中包含业务活动.
在我的prev应用程序中,我用来配置
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
Run Code Online (Sandbox Code Playgroud)
这个过滤器实际上会启用我的应用程序中的spring安全性,这会将用户令牌传递给更多步骤.
在Spring Boot参考文档中,我没有得到任何springSecurityFilterChain/DelegatingFilterProxy的痕迹所以我对如何开始我的模块的开发感到困惑
这里的问题是,我需要手动配置吗?或者自动配置本身已经处理过了吗?
其次,我需要在Spring Security中进行大量自定义,因此我不需要Spring Boot security提供的功能,如基本身份验证.在这种情况下,只使用@EnableWebSecurity创建自己的bean将关闭功能?
附加信息
4.2.安全命名空间配置入门在本节中,我们将介绍如何构建命名空间配置以使用框架的一些主要功能.假设您最初希望尽快启动并运行,并通过一些测试登录将身份验证支持和访问控制添加到现有Web应用程序.然后,我们将了解如何更改以对数据库或其他安全存储库进行身份验证.在后面的部分中,我们将介绍更高级的命名空间配置选项.
4.2.1.web.xml配置您需要做的第一件事是将以下过滤器声明添加到您的web.xml文件中:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
这为Spring Security Web基础结构提供了一个钩子.DelegatingFilterProxy是一个Spring Framework类,它委托给一个过滤器实现,该实现在应用程序上下文中定义为一个Spring bean.在这种情况下,bean被命名为"springSecurityFilterChain",它是由命名空间创建的内部基础结构bean,用于处理Web安全性.请注意,您不应自己使用此bean名称.将此添加到web.xml后,您就可以开始编辑应用程序上下文文件了.使用该元素配置Web安全服务.
使用DefaultJmsListenerContainerFactoryover有DefaultMessageListenerContainer什么优点?
如果直接配置DMLC,则可以通过调用来检查状态isRunning()。我也确实可以启动和停止DMLC
但是,根据新的春季规格,如果我配置DefaultJmsListenerContainerFactory,我将无法处理DMLC,因此无法执行上述任何操作。
因此,从上述限制来看,有人可以解释为什么应该DefaultJmsListenerContainerFactory在DMLC上使用
另外,如果我使用DefaultJmsListenerContainerFactory,实现上述功能的方法是什么?
在我的应用程序中,我有2个diff mq conn工厂bean.为此,我有2个diff DefaultJmslistenercontainerfactory bean ex cf1 n cf2.每个DefaultJmslistenercontainerfactory bean都在单独的@JmsListener中引用...现在我想以编程方式开始停止每个listrner,因为我重写了configureMessageListeners(JmsListenerRegistrar)方法,我可以在其中设置DefaultJmslistenercontainerfactory实例.注意我只能设置一个实例..然后在我的代码中我得到JmsListenerRegistry的spring实例,我可以从中获取列表dmlc..which我可以启动n stop但是..因为我只设置了一个DefaultJmslistenercontainerfactory实例,我的代码只返回一个dmlc ..这里的问题是如何在configureJmsListener()方法中传递多个DefaultJmslistenercontainerfactory实例?注意 - 我没有手动创建dmlc ..我只是配置工厂..