項目中一個普通的Java類如何獲取service接口(一)


在普通的Java類中獲取service接口目的是調用接口中的方法,實現數據的持久化等操作:

Java類中的獲取service接口方法:

IfaceDetectService    faceDetectService    =    (IFaceDetectService)SpringUtil.getObject("faceDetectService");

注意:括號中的“faceDetectService”一定要與serviceimpl上注入的一致。

SpringUtil類:

public static final String publicDBSource = "publicDBSource"; //本地數據庫連接
    //此方法會重新加載spring,故不用
//    public static ApplicationContext ct=new ClassPathXmlApplicationContext("/config/spring/spring-servlet.xml"); ;
    public static ApplicationContext ct;
    public static ServletContext servletContext; 
    //從數據庫中獲得數據庫連接
    public static Connection getSpringBean(String beanId){
        BoneCPDataSource datasource=(BoneCPDataSource)ct.getBean(beanId); 
        Connection conn = null;
        try {
            conn=(Connection) datasource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    public static BasicDaoSupportImpl getDaoSupport(){
        return (BasicDaoSupportImpl)ct.getBean("basicDaoSupport");
    }
    public static Connection getPublicConnection(){
        return getSpringBean("publicDBSource");
    }
    //spring中獲得bean
    public static Object getObject(String beanId){
        return ct.getBean(beanId);
    }
    //獲得web.xml配置文件參數
    public static String getContextParams(String name){
        return servletContext.getInitParameter(name);
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection conn = getSpringBean(null);
        CallableStatement statement = null;
        String sql = "{call InsertBBSBloger(?,?,?)}";
        try {
            statement = conn.prepareCall(sql);
            statement.setString(1, "jacun");
            statement.setString(2, "http://3more.jpg");
            statement.registerOutParameter(3, Types.INTEGER);
            statement.execute();
            //輸出:
            int webid = statement.getInt(3);
            System.out.println(webid+"===");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void setApplicationContext(ApplicationContext arg0) throws BeansException {
        SpringUtil.ct = arg0;
    }
    @Override
    public void setServletContext(ServletContext arg0) {
        servletContext = arg0;
    }

main方法是我在測試時候用的,可以去掉。

配置文件spring-servlet.xml:

<!-- 自動spring ApplicationContext 到對象中 -->
<bean id="SpringUtil"  class="monitor.util.SpringUtil"></bean>

完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM