我有一个组件,我想从@ComponentScan
特定的一个组件中排除@Configuration
:
@Component("foo") class Foo {
...
}
Run Code Online (Sandbox Code Playgroud)
否则,它似乎与我项目中的其他类冲突.我不完全理解碰撞,但是如果我注释掉@Component
注释,事情就像我想要的那样.但是依赖这个库的其他项目希望这个类由Spring管理,所以我想在我的项目中跳过它.
我试过用@ComponentScan.Filter
:
@Configuration
@EnableSpringConfigured
@ComponentScan(basePackages = {"com.example"}, excludeFilters={
@ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)})
public class MySpringConfiguration {}
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用.如果我尝试使用FilterType.ASSIGNABLE_TYPE
,我得到一个奇怪的错误,无法加载一些看似随机的类:
引起:java.io.FileNotFoundException:类路径资源[junit/framework/TestCase.class]无法打开,因为它不存在
我也尝试使用type=FilterType.CUSTOM
如下:
class ExcludeFooFilter implements TypeFilter {
@Override
public boolean match(MetadataReader metadataReader,
MetadataReaderFactory metadataReaderFactory) throws IOException {
return metadataReader.getClass() == Foo.class;
}
}
@Configuration @EnableSpringConfigured
@ComponentScan(basePackages = {"com.example"}, excludeFilters={
@ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)})
public class MySpringConfiguration {}
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有像我想要的那样从扫描中排除组件.
我如何排除它?
我有一个bash脚本来测试服务器在负载下的执行情况.
num=1
if [ $# -gt 0 ]; then
num=$1
fi
for i in {1 .. $num}; do
(while true; do
{ time curl --silent 'http://localhost'; } 2>&1 | grep real
done) &
done
wait
Run Code Online (Sandbox Code Playgroud)
当我按下Ctrl-C时,主进程退出,但后台循环继续运行.如何让它们全部退出?或者是否有更好的方法来生成可并行执行的可配置数量的逻辑循环?
是否有一个命令行参数会强制firefox.exe为特定URL启动一个新进程,无论另一个firefox实例是否已在运行?
使用Connector/J,我想在主表中进行批量插入,然后将批量插入到详细信息表中(PreparedStatement.executeBatch()
对于两者).我没有在网上找到太多的信息,所以我正在寻找有这方面经验的人的任何反馈.
我可以使用
Statement.getGeneratedKeys()
获取主表中新插入的行的ID,以便我可以在详细信息插入中将它们用作外键吗?
如果不是每个查询都导致插入(例如,有一个insert
ignore
或insert ... on duplicate
key update
查询),该怎么办?我会Statement.getGeneratedKeys()
为每个陈述或仅针对新陈述添加一行吗?
什么会
Statement.getGeneratedKeys()
回到那里与被插入的主记录一个错误,并
continueBatchOnError
设置为true
连接字符串中?
Connector/J版本5.0.x与5.5.x之间的相关行为是否有任何差异?MySQL 5.0 vs 5.1怎么样?
还有其他任何我应该注意的问题或陷阱吗?
有一个更好的方法吗?
关于POODLE漏洞,如果我理解正确,它需要客户端在未能与使用服务器通告的更高版本协议的服务器建立安全通道时自动将TLS协议降级为SSLv3.
常见的Java HTTP客户端库,特别是javax.net.ssl.HttpsURLConnection和Apache HttpClient,在无法与服务器建立TLS会话时会自动降级TLS协议吗?如果没有,我是否正确他们不受POODLE攻击的影响,除非(a)服务器仅支持SSLv3,或(b)更高级别的逻辑执行降级?
我正在寻找像http://blog.hagander.net/archives/222-A-few-short-notes-about-PostgreSQL-and-POODLE.html这样的东西,但是对于Java客户端.
在我的代码中,当类型是数组时,在实现泛型方法时使用varargs似乎很方便:
public interface Codec<D,E> {
E encode(D decoded);
D decode(E encoded);
}
public class MyCodec implements Codec<byte[], char[]> {
@Override char[] encode(byte... decoded) {...}
@Override byte[] decode(char... encoded) {...}
}
Run Code Online (Sandbox Code Playgroud)
当我写这篇文章时,Eclipse会显示一条警告:
与MyCodec.encode(byte ...)和Codec.encode(byte [])不同,Varargs方法只应覆盖或覆盖其他varargs方法
我应该忽略这个警告,还是会导致一些无法预料的问题?
我有一个核心模型Item
,以及一个从自定义源(想想,RSS提要)填充它的脚本.在Feed中,每个项目都标识为guid
; 在我的系统中,Item只有一个自动生成的id
主键.
我想让ItemFeedInfo
地图guid->id
(这样我可以区分新项目和修改项目)
我正在考虑创造
class ItemFeedInfo
belongs_to :Item
end
Run Code Online (Sandbox Code Playgroud)
我宁愿不修改,Item
因为它的定义在逻辑上是独立的.ItemFeedInfo
然而,我可以找到使用的每个例子belongs_to
,提到has_one
对应物.需要吗?
X-CSRF-Token
在隐藏字段中使用标头或令牌有什么区别 ?
当使用隐藏字段和使用标题时为什么?
我想那X-CSRF-Token
是我正在使用javascript/ajax,但我不确定
我有一个DOS批处理脚本,它调用一个java应用程序,它通过控制台UI与用户交互.为了论证,让我们称之为它runapp.bat
的内容
java com.example.myApp
Run Code Online (Sandbox Code Playgroud)
如果在控制台中调用批处理脚本,一切正常.但是,如果从窗口管理器调用脚本,则在应用程序完成执行后,新打开的控制台将立即关闭.我想要的是控制台在所有情况下都保持打开状态.
我知道以下技巧:
pause
在脚本末尾添加命令.如果runapp.bat
从命令行调用,这有点难看.
使用cmd /K java com.example.myApp
这是我迄今为止找到的最佳解决方案,但是从命令行调用时会留下额外的shell环境,因此调用exit
实际上并不关闭shell.
有没有更好的办法?
我一直在阅读,试图弄清楚浏览器中的内存泄漏,尤其是.IE浏览器.我知道泄漏是由Javascript引擎和DOM对象树之间的垃圾收集算法不匹配引起的,并且会持续存在.我不明白的是为什么(根据我正在阅读的文章中的一些陈述)在浏览器卸载页面后不回收内存.导航离开网页应该将所有DOM和javascript对象放在范围之外,不应该吗?
java ×4
security ×2
activerecord ×1
bash ×1
batch-file ×1
command-line ×1
connector-j ×1
csrf ×1
cygwin ×1
database ×1
dom ×1
dos ×1
eclipse ×1
firefox ×1
generics ×1
https ×1
javascript ×1
jdbc ×1
memory ×1
memory-leaks ×1
mysql ×1
php ×1
scripting ×1
spring ×1
spring-boot ×1
spring-ioc ×1
windows ×1