我有一个自定义方言在SpringBoot中为Hibernate设置.方言适用于Gemfire.说明(https://discuss.zendesk.com/hc/en-us/articles/201724017-Pivotal-GemFire-XD-Hibernate-Dialect)用于基于XML的配置.但是,我正在使用SpringBoot,我无法弄清楚如何设置此属性.
方言是"com.pivotal.gemfirexd.hibernate.GemFireXDDialect"
我创建了一个Servlet(从HttpServlet扩展)并按照3.0规范注释
@WebServlet(name="DelegateServiceExporter", urlPatterns={"/remoting/DelegateService"})
Run Code Online (Sandbox Code Playgroud)
我@Configuration
在Spring Boot中的类扫描这个servlet的包.但是,当我的Spring Boot应用程序启动时,它没有记录它已在嵌入式Tomcat 8.0.15容器中部署此servlet.
所以,我也加入@Component
了我的servlet.现在,Spring Boot注册了servlet(向我证明扫描包已正确设置),但随后它使用驼峰大小写基于类名的URL模式进行注册.所以,这更好 - 例如,我注册了一个servlet,但是URL映射错误!
2015-01-05 11:29:08,516 INFO (localhost-startStop-1) [org.springframework.boot.context.embedded.ServletRegistrationBean] Mapping servlet: 'delegateServiceExporterServlet' to [/delegateServiceExporterServlet/]
Run Code Online (Sandbox Code Playgroud)
如何让Spring Boot自动加载所有带@WebServlet
注释的servlet并遵守其url映射?
spring annotations servlet-3.0 spring-boot embedded-tomcat-8
我想使用Java Config在Spring Boot中定义类似于此XML的内容.
<http pattern="/webservices/**" security="none"/>
我需要一种不同的方法来保护它们,不能进行表单登录.保护他们将在以后到来.现在,我想停止使用http.formLogin()来保护它们.
我已经覆盖了WebSecurityConfigurerAdapter.configure().我找不到要说的API,像这样:
http.securityNone().antMatchers("/webservices")
这是我的configure()方法:
@Override
protected void configure(HttpSecurity http) throws Exception
http.csrf().disable();
http.headers().frameOptions().disable();
http.authorizeRequests()
.antMatchers("/resources/**",
//"/services/**", THIS LOGS IN AUTOMATICALLY AS 'ANONYMOUS'. NO GOOD!
//"/remoting/**", THIS LOGS IN AUTOMATICALLY AS 'ANONYMOUS'. NO GOOD!
"/pages/login",
"/pages/loginFailed").permitAll()
// Only authenticated can access these URLs and HTTP METHODs
.antMatchers("/secured/**").authenticated()
.antMatchers(HttpMethod.HEAD,"/**").authenticated()
.antMatchers(HttpMethod.GET,"/**").authenticated()
.antMatchers(HttpMethod.POST,"/**").authenticated()
.antMatchers(HttpMethod.PUT,"/**").authenticated()
.antMatchers(HttpMethod.DELETE,"/**").authenticated();
// Accept FORM-based authentication
http.formLogin()
.failureUrl("/pages/loginFailed")
.defaultSuccessUrl("/")
.loginPage("/pages/login")
.permitAll()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/pages/logout"))
.logoutSuccessUrl("/pages/login")
.permitAll();
http.formLogin().successHandler(new AppLoginSuccessHandler());
}
Run Code Online (Sandbox Code Playgroud) 我想用ENV设置覆盖application.properties中的ANY属性。在我的应用程序中,我使用带有DOT的“前缀”定义属性。和带后缀“破折号”(例如,“-”)。
例如:
application.server.jgroups-port= some port #
现在,我想从OS ENV设置中覆盖此属性。
在Windows上,当我设置此ENV属性时,结果如下:
首先(失败),
Windows ENV >> APPLICATION_SERVER_JGROUPS_PORT = 5445
environment.getProperty("application.server.jgroups-port") returns NULL
Run Code Online (Sandbox Code Playgroud)
第二(失败),
Windows ENV >> APPLICATION_SERVER_JGROUPSPORT = 5445
environment.getProperty("application.server.jgroups-port") returns NULL
Run Code Online (Sandbox Code Playgroud)
第三(这工作!),
Windows ENV >> APPLICATION_SERVER_JGROUPS-PORT = 5445
environment.getProperty("application.server.jgroups-port") returns 5445
Run Code Online (Sandbox Code Playgroud)
注意,最后一个上的“破折号”(例如“-”)。
好极了!我已经使用“破折号”从Windows ENV中有效地设置了该属性。Spring Boot完美地将此ENV映射到application属性。
但是,在Linux上,它的ENV不接受“破折号”(例如,“-”),因此,当我使用与Windows上相同的方法时,.profile会被炸毁>> APPLICATION_SERVER_JGROUPS-PORT = 5445。使Linux ENV设置设置我的“ application.server.jgroups-port”属性需要做些什么?
编辑:看起来org.springframework.core.env.SystemEnvironmentPropertySource是我需要做一些工作来支持Java作为Linux ENV的虚线属性名称的地方。例如,getProperty("somePrefix.foo-suffix")
在SystemEnvironmentPropertySource中调用= APPLICATION_SERVER_JGROUPS_PORT就像有一个句点一样- getProperty("somePrefix.foo.suffix")
来自ehcache 2.9的这篇文档说它将支持RMI,JGroups和JMS.但是,很明显,ehcache-2.9 JAR中的API已经更改,文档也不是最新的.在我得到下面的错误后,仔细看看它的EhCache ClassLoaderUtils确认这个方法(getStandardClassLoader())确实不存在.
我正在寻找关于如何解决这个问题的好主意,所以我可以在ehcache 2.9中使用JGroups复制.
我正在使用最新的ehcache-jgroupsreplication maven依赖:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-jgroupsreplication</artifactId>
<version>1.7</version>
</dependency>
Caused by: net.sf.ehcache.CacheException: java.lang.NoSuchMethodError: net.sf.ehcache.util.ClassLoaderUtil.getStandardClassLoader()Ljava/lang/ClassLoader;
at net.sf.ehcache.CacheManager.init(CacheManager.java:426)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at org.springframework.cache.ehcache.EhCacheManagerFactoryBean.afterPropertiesSet(EhCacheManagerFactoryBean.java:157)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562)
... 39 more
Caused by: java.lang.NoSuchMethodError: net.sf.ehcache.util.ClassLoaderUtil.getStandardClassLoader()Ljava/lang/ClassLoader;
at net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory.createCachePeerProvider(JGroupsCacheManagerPeerProviderFactory.java:61)
at net.sf.ehcache.config.ConfigurationHelper.createCachePeerProviders(ConfigurationHelper.java:136)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:795)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:471)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
... 43 more
Run Code Online (Sandbox Code Playgroud) Datastax 3.x驱动程序中现在有许多API消失了.他们习惯于做我所拥有的'框架'级别的驱动程序包装器类.
https://github.com/datastax/java-driver/tree/3.0/upgrade_guide
升级指南没有提供如何替换已删除API的调用的示例(无论如何我都关心).这里有几个缺失,我正在尝试升级我的代码.有什么想法"替换"了它们?
DataType.serialize(Object value, ProtocolVersion protocolVersion)
DataType.deserialize(ByteBuffer bytes, ProtocolVersion protocolVersion)
DataType.asJavaClass()
DataType.Name.asJavaClass()
Run Code Online (Sandbox Code Playgroud)
现在应该调用哪些API调用这些方法的任何帮助都将受到赞赏.
似乎“ ignoring()”和“ permitAll()”都是请求Web资源时绕过Spring Security的方法。使用这两种方法所看到的性能差异是什么?为什么一种方法比另一种方法更快速/可扩展?
在Postgresql中,我想调用第三方库,如moment.js或AWS lambda JS Client,以从DB中调用无服务器功能.我没有看到任何文档或示例如何操作:https: //github.com/plv8/plv8/blob/master/README.md
这是可能的吗?在哪里可以找到如何"导入"或"需要"其他库的示例?
我有一个多租户应用程序,其中tenantId将成为每个查询的一部分,所以我将它放入所有表的分区键中.
例子:
CREATE TABLE users {
tenantId text,
user text,
active boolean,
PRIMARY_KEY (tenantId, user)
}
CREATE TABLE roles {
tenantId text,
rolename text,
PRIMARY_KEY (tenantId, rolename)
}
Run Code Online (Sandbox Code Playgroud)
现在,想象一下像这样的100个表......
我的问题是:
Cassandra会将tenantId'foo'散列为将所有表中的所有数据指向同一个节点,并使其成为一个超级热点,还是会均匀地将每个表和租户数据均匀地分布在集群周围?
我没有看到任何有关如何更改 emqtt.io Web 仪表板的用户名/密码的配置或文档。有谁知道如何改变这个?
spring-boot ×4
spring ×3
cassandra ×2
annotations ×1
ehcache ×1
emq ×1
gemfire ×1
jgroups ×1
linux ×1
plv8 ×1
postgresql ×1
servlet-3.0 ×1