在普通的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>

完成。

项目中一个普通的Java类如何获取service接口(一)的更多相关文章

  1. 项目中一个普通的Java类如何获取serviceimpl实现类(二)

    HbOnLineConfigServiceImpl hbOnlineService=(HbOnLineConfigServiceImpl) WebContextFactoryUtil.getBean( ...

  2. IDEA 创建一个普通的java项目

    IntelliJ IDEA 如何创建一个普通的java项目,及创建java文件并运行 首先,确保idea软件正确安装完成,java开发工具包jdk安装完成. IntelliJ IDEA下载地址:htt ...

  3. 在Web工程中,普通Java类如何读文件

    我们在以前讨论过在Web工程不能采用Java工程原先的读取方式,即创建一个文件流(FileInputStream)并给出一个文件目录(从src开始找一直找到你要读取文件的目录),这种的方式是不可行的. ...

  4. 四、spring集成ibatis进行项目中dao层基类封装

    Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库 ...

  5. 关于Java中的对象、类、抽象类、接口、继承之间的联系

    关于Java中的对象.类.抽象类.接口.继承之间的联系: 导读: 寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系. 正文: 举个例子:如果 ...

  6. spring注解方式在一个普通的java类里面注入dao

    spring注解方式在一个普通的java类里面注入dao @Repositorypublic class BaseDaoImpl implements BaseDao {这是我的dao如果在servi ...

  7. 将Eclipse中现有的java类生成类图

    需求:将Eclipse中现有的java类生成类图 一:什么是ModelGoon? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图). 二:安装 下载Mod ...

  8. 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等

    设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...

  9. IntelliJ IDEA启动一个普通的java web项目的配置

    文:朱季谦 这是我很久以前刚开始用IntelliJ IDEA时记录的笔记,正好赶上最近离职了,可以有比较多的时间把以前的记录整理一下,可以让刚接触到IntelliJ IDEA的童鞋学习如何在Intel ...

随机推荐

  1. buffer和cache怎么让你们解释的那么难理解?

    对于一个即将踏上“系统运维”或者更加高大尚的工作“系统调优”,如果这不跟这两哥们搞好关系了,坑的不只有内存,更坑的是你拿着调优的钱却干着随时被调的活.因为作为一个系统运维人员来说监控和优化IO性能这是 ...

  2. Linux 之 xunsearch

    Linux 之 xunsearch 参考教程:[千峰教育] 一.xunsearch简介: 开源免费.高性能.多功能.简单易用的专业全文检索技术方案. 官网(http://xunsearch.com). ...

  3. Laravel 5.1 框架返回状态拦截

    Laravel 5.1 返回信息状态拦截 可以在app\Exceptions\Handler.php文件中修改, public function render($request, Exception ...

  4. yii批量插入数据

    现在有如下数据: 查看代码   打印 1 $user=array( 2     0=>array('id'=>1,'name'=>'张三'), 3     0=>array(' ...

  5. AtCoder - 2581 Meaningful Mean

    Problem Statement You are given an integer sequence of length N, a= {a1,a2,…,aN}, and an integer K. ...

  6. Codeforces 622F The Sum of the k-th Powers

    Discription There are well-known formulas: , , . Also mathematicians found similar formulas for high ...

  7. xamarin android 获取根证书代码

    Java.Security.KeyStore keyStore = Java.Security.KeyStore.GetInstance("AndroidCAStore"); ke ...

  8. 3D空间中射线与轴向包围盒AABB的交叉检测算法 【转】

    http://blog.csdn.net/i_dovelemon/article/details/38342739 引言 在上一节中,我讲述了如何实现射线与三角形的交叉检测算法. 但是,我们应该知道, ...

  9. Oracle对没有主键的表分页

    普通情况对于有主键,能够做唯一表识的表.我们能够利用主键和rownum配合实现.比如: select scott.emp.* from scott.emp left join (select empn ...

  10. C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型

     标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更主要的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:由 ...