我是Spring的新手,我正在研究CAS。我需要查詢數據庫以進行用戶身份驗證,但我使用的是servlet作爲控制器。因此,我需要知道是否有任何方法在該servlet中設置SimpleJdbcTemplate並使用它來查詢數據庫。如果有如何配置web.xml文件或任何其他文件。爲Servlet設置SimpleJdbcTemplate
謝謝。
我是Spring的新手,我正在研究CAS。我需要查詢數據庫以進行用戶身份驗證,但我使用的是servlet作爲控制器。因此,我需要知道是否有任何方法在該servlet中設置SimpleJdbcTemplate並使用它來查詢數據庫。如果有如何配置web.xml文件或任何其他文件。爲Servlet設置SimpleJdbcTemplate
謝謝。
將JdbcTemplate
直接注入Servlet
或Controller
並不是一個好主意。
你可以有一個DAO
層之間,並注入你的JdbcTemplate
在你的DAO將是一個更好的方法。
爲了使用JdbcTemplate
,您需要在配置的某處(通過xml或Annotations的Spring上下文)定義DataSource
。
如果你有一個UserDao
,那麼你的春天的配置情況如下
<bean class="com.xxx.dao.UserDAOImpl" id="userDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
and here you need to difine your "dataSource" there are multiple ways to configure it, You may get better help from google.
而現在,你UserDaoImpl
看起來像
public class UserDAOImpl implements UserDAO {
private JdbcTemplate jdbcTemplate;
//setter and getter for jdbcTemplate
public List<Map<String, Object>> getUsers() {
String query = "select * from user";
return jdbcTemplate.queryForList(query, new HashMap<String, String>());
}
}
在servlet,你需要得到這個參考道使用的servlet類ServiceLocator
...
public UserDAO getUserDao() {
return ServiceLocator.getBean(UserDAO.class);
}
...
再次有多種方法來設計ServiceLocator
,下面是簡單的實現。
public class ServiceLocator implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
* @return Returns the applicationContext.
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static <T> T getBean(Class<T> requiredType) throws BeansException {
return getApplicationContext().getBean(requiredType);
}
/**
* @param applicationContext The applicationContext to set.
*/
public void setApplicationContext(ApplicationContext applicationContext) {
ServiceLocator.applicationContext = applicationContext;
}
}
最後,所有這些作品都是獨立的,你需要單獨閱讀時,你會得到很多,對谷歌或春季論壇上精確的幫助。
爲什麼你使用servlets而不是java控制器? –
如果您使用jasig-CAS來驗證您的用戶,則應在CAS服務器中實施身份驗證方法。你的問題是如何配置數據庫查詢身份驗證。 CAS服務器中的方法?或者您是否嘗試做其他任何事情,例如CAS服務器驗證用戶訪問權限後的用戶授權? – kothvandir