我正在玩Weld-SE(Java SE)并注意到如果类路径中有很多JAR,那么JVM启动时间会持续几秒钟。
是否有办法将扫描路径指定/限制为像Apache Ant或AspectJ中的包模式或路径模式?
PS:在Weld论坛上注册不起作用 - 它一直说“你的密码是微不足道的”
答案 0 :(得分:13)
从焊接1.1.0开始,可以根据Weld reference documentation:
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
<weld:scan>
<weld:exclude name="mypackage.MyClass"/>
</weld:scan>
</beans>
答案 1 :(得分:6)
您可以使用CDI 1.1。第一个答案工作正常,但这个代码段适用于任何提供商:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
<scan>
<exclude name="my.cool.package" />
<!-- you can exclude with condition -->
<exclude name="my.cool.package.for.jodatime" />
<if-class-not-available name="org.joda.time.LocalDate"/>
</exclude>
</scan>
</beans>
答案 2 :(得分:4)
好问题,但我认为不可能。按规范扫描每个存档beans.xml