Apusic Operamasks 基於 JSR-250/330 實現資源注入,支援 DataSource、JMS、EJB、WebService、Managed Bean、Spring Bean、LocalString、上下文資源等十大類型。本文系統梳理注入動機、支援範圍、各類型注解用法與代碼範例,涵蓋 @Resource、@EJB、@Inject、@LocalString 等核心注解。
| 資源類型 | 注解範例 | 關鍵屬性 |
|---|---|---|
| JDK Logger | @Inject private Logger logger; | 無 |
| JSF FacesContext | @Inject private FacesContext fContext; | 可獲取 Request/Response/Session |
| DataSource | @Resource(mappedName="jdbc/CRUD") DataSource ds; | mappedName 對應 JNDI 名稱 |
| JMS ConnectionFactory | @Resource(mappedName="jms/ConnectionFactory") ConnectionFactory cf; | |
| JMS Topic/Queue | @Resource(mappedName="testTopic") Topic topic; | |
| UserTransaction | @Resource UserTransaction tx; | 線程級事務,無需名稱 |
| EJB | @EJB(name="com.xxx.PersonService") IPersonService svc; | name 指定介面全限定名 |
| LocalString | @LocalString Map | 僅支援 LocalStrings 前綴資源包 |
| 上下文資源 | faces-config.xml managed-property + setter 注入 | XML 宣告式 |
| Spring Bean | @Inject SpringBean springBean; | 需容器整合 Spring 上下文 |