- JBoss Weld CDI for Java Platform
- Ken Finnegan
- 177字
- 2021-08-13 16:49:54
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.
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)教程
- Vue.js前端開發(fā)基礎(chǔ)與項(xiàng)目實(shí)戰(zhàn)
- JavaScript 網(wǎng)頁編程從入門到精通 (清華社"視頻大講堂"大系·網(wǎng)絡(luò)開發(fā)視頻大講堂)
- Android開發(fā)案例教程與項(xiàng)目實(shí)戰(zhàn)(在線實(shí)驗(yàn)+在線自測)
- 細(xì)說Python編程:從入門到科學(xué)計(jì)算
- Go語言編程
- 零基礎(chǔ)學(xué)Python編程(少兒趣味版)
- Using Yocto Project with BeagleBone Black
- Mastering OpenStack
- Visual C++程序設(shè)計(jì)全程指南
- Flask Web開發(fā)實(shí)戰(zhàn):入門、進(jìn)階與原理解析
- 深度剖析ApacheDubbo核心技術(shù)內(nèi)幕
- 設(shè)計(jì)模式之禪
- Elixir Cookbook
- Data Analysis with R