项目中一个普通的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>

完成。

转载于:https://www.cnblogs.com/zjiacun/p/6692023.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值