我有带CDI bean的WAR包。部署包非常慢,因为每次部署期间都会扫描包以查找CDI bean。有没有选项可以禁用此过程?
答案 0 :(得分:5)
正确的方法是在相关存档的beans.xml中禁用发现:
<?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="none">
</beans>
根据CDI specification,这将从bean-archives列表中删除存档。
答案 1 :(得分:2)
我觉得你正在寻找的东西更像是一种工具。如上所述,Weld使用类扫描来查找注释。有办法加快这个速度。效果很好的是Jandex,这是一个注释处理器,可以在编译时用来创建类和注释的索引(更容易阅读的数据库)。这确实大大增加了部署时间。