小编yka*_*ich的帖子

从@ComponentScan中排除@Component

我有一个组件,我想从@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)

但这似乎并没有像我想要的那样从扫描中排除组件.

我如何排除它?

java spring dependency-injection spring-ioc spring-boot

76
推荐指数
5
解决办法
12万
查看次数

如何终止所有子shell进程?

我有一个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时,主进程退出,但后台循环继续运行.如何让它们全部退出?或者是否有更好的方法来生成可并行执行的可配置数量的逻辑循环?

bash cygwin

29
推荐指数
3
解决办法
1万
查看次数

有没有办法强制Firefox在新进程中启动?

是否有一个命令行参数会强制firefox.exe为特定URL启动一个新进程,无论另一个firefox实例是否已在运行?

firefox

18
推荐指数
1
解决办法
1万
查看次数

在带有Connector/J的MySQL中使用getGeneratedKeys和批量插入

使用Connector/J,我想在主表中进行批量插入,然后将批量插入到详细信息表中(PreparedStatement.executeBatch()对于两者).我没有在网上找到太多的信息,所以我正在寻找有这方面经验的人的任何反馈.

  1. 我可以使用 Statement.getGeneratedKeys()获取主表中新插入的行的ID,以便我可以在详细信息插入中将它们用作外键吗?

  2. 如果不是每个查询都导致插入(例如,有一个insert ignoreinsert ... on duplicate key update查询),该怎么办?我会Statement.getGeneratedKeys()为每个陈述或仅针对新陈述添加一行吗?

  3. 什么会 Statement.getGeneratedKeys()回到那里与被插入的主记录一个错误,并 continueBatchOnError设置为true 连接字符串中?

  4. Connector/J版本5.0.x与5.5.x之间的相关行为是否有任何差异?MySQL 5.0 vs 5.1怎么样?

  5. 还有其他任何我应该注意的问题或陷阱吗?

  6. 有一个更好的方法吗?

java mysql database jdbc connector-j

16
推荐指数
1
解决办法
8298
查看次数

Java http客户端和POODLE

关于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客户端.

java security https apache-httpclient-4.x poodle-attack

16
推荐指数
2
解决办法
4万
查看次数

用varargs实现泛型方法

在我的代码中,当类型是数组时,在实现泛型方法时使用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方法

我应该忽略这个警告,还是会导致一些无法预料的问题?

java eclipse generics variadic-functions

13
推荐指数
1
解决办法
3524
查看次数

如果您使用belongs_to而没有相应的has_one会发生什么?

我有一个核心模型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对应物.需要吗?

activerecord ruby-on-rails

12
推荐指数
1
解决办法
1103
查看次数

CSRF和X-CSRF-Token之间的区别

X-CSRF-Token在隐藏字段中使用标头或令牌有什么区别 ?

当使用隐藏字段和使用标题时为什么?

我想那X-CSRF-Token是我正在使用javascript/ajax,但我不确定

php security csrf csrf-protection

12
推荐指数
2
解决办法
2万
查看次数

是否有一种方法可以在批处理脚本中仅在从Windows Manager调用时保持控制台打开?

我有一个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.

有没有更好的办法?

windows scripting command-line dos batch-file

11
推荐指数
1
解决办法
2万
查看次数

卸载网页后Javascript内存泄漏

我一直在阅读,试图弄清楚浏览器中的内存泄漏,尤其是.IE浏览器.我知道泄漏是由Javascript引擎和DOM对象树之间的垃圾收集算法不匹配引起的,并且会持续存在.我不明白的是为什么(根据我正在阅读的文章中的一些陈述)在浏览器卸载页面后不回收内存.导航离开网页应该将所有DOM和javascript对象放在范围之外,不应该吗?

javascript memory internet-explorer dom memory-leaks

8
推荐指数
1
解决办法
4002
查看次数