我特別問無類型會話Bean這個問題。我知道我可以很容易地注入DataSource
和@Resource
註釋。但我不知道什麼是得到Connection
的正確方法。它是在豆的每種方法中還是在用@PostConstruct
註釋的方法中?並且還用於關閉Connection
。是否必須在每個方法調用的finally塊中關閉它,還是在用@PreDestroy
註釋的方法中關閉它?在EJB 3(SLSB)中處理JDBC連接的正確方法
是否安全,創建一個實例變量的Connection
,例如:
@Stateless
public class MyBean {
@Resource private DataSource ds;
private Connection conn;
@PostConstruct
public void onCreate() {
conn = ds.getConnection(); // within try catch block
}
@PreDestroy
public void onDestroy() {
conn.close() // within try catch block
}
}
或者我應該在每個方法本地創建他們是這樣的:在互聯網
@Stateless
public class MyBean {
@Resource private DataSource ds;
public void method1() {
Connection conn = null;
// get and close connection...
}
public void method2() {
Connection conn = null;
// get and close connection...
}
}
有人這樣做,其他一些做這種方式。在具有高請求流量的應用程序中實施的正確方法是什麼?當bean實例返回到EJB池時,Connection
保持打開狀態還是返回到數據庫池?
注意:該應用程序正在使用本機JDBC API。沒有JPA,JDO等。應用程序服務器是Wildfly。