官术网_书友最值得收藏!

Is my class a bean?

For almost every Java class that we as developers have ever written, the answer would be yes, most definitely, as long as the Java class has either a constructor with no parameters or a constructor that is annotated with @Inject.

There is only one requirement that CDI mandates for a Java class to be injected as a bean, and that's for the Java class to be packaged into an appropriate archive (such as a JAR or WAR) that contains a descriptor file called beans.xml. This descriptor file needs to be present in the META-INF folder of a JAR or the WEB-INF folder of a WAR.

It's perfectly fine for beans.xml to be completely empty or only contain the following XML content:

<beans xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
    http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

For most applications, the sole purpose of beans.xml is to notify CDI that there are beans within the archive that need to be scanned, so that they are available to have beans injected into them as well as be injected into other beans that may not be present within this archive.

主站蜘蛛池模板: 古丈县| 清原| 和硕县| 五指山市| 平顶山市| 昌图县| 通化县| 日土县| 隆尧县| 筠连县| 建阳市| 萨嘎县| 东乡县| 崇文区| 桐城市| 阳江市| 旬阳县| 将乐县| 雷山县| 壤塘县| 鹤岗市| 株洲县| 罗江县| 汉源县| 留坝县| 宝丰县| 出国| 蛟河市| 彭山县| 泽库县| 任丘市| 贵定县| 富宁县| 博爱县| 三原县| 石河子市| 社会| 宽城| 长泰县| 阿克| 博白县|