在普通的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. Codeforces Gym101502 A.Very Hard Question

    2017 JUST Programming Contest 3.0 昨天的训练赛,打的好难过,因为被暴打了,写了8题,他们有的写了9题,差了一道dp,博客上写7道题的题解. 因为有一道是套板子过的,并 ...

  2. 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16)

    题目链接  Codeforces_Gym_101177 Problem A  Anticlockwise Motion 直接模拟即可 #include<iostream> #include ...

  3. 推荐一款基于 AI 开发的 IDE 插件,帮助提升编码效率

    最近在浏览技术社区的时候,发现了一款神奇 IDE 插件,官网称可以利用 AI 帮助程序员写代码,一下子吸引了我的好奇心.赶紧下载下来使用一番,感觉确实蛮神奇,可以火速提升编程效率. 这款插件叫做 ai ...

  4. 一个jdbc connection连接对应一个事务

    Spring保证在methodB方法中所有的调用都获得到一个相同的连接.在调用methodB时,没有一个存在的事务,所以获得一个新的连接,开启了一个新的事务. Spring保证在methodB方法中所 ...

  5. mac下mysqldump找不到命令

    之所以会出现MySQL或者mysqldump这样的命令找不到, 我们可以打开/usr/bin文件夹,发现bin目录中并没有mysql打头的UEF文件, 而在/usr/local/mysql/bin中可 ...

  6. Git安装及SSH Key管理之Windows篇

    一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Git版本:Git-2.11.0-64-bit.exe(64位) 二.Git安装 去官网下载完后一路下一步完成安装,如下图:   ...

  7. Java自定义注解和运行时靠反射获取注解

    转载:http://blog.csdn.net/bao19901210/article/details/17201173/ java自定义注解 Java注解是附加在代码中的一些元信息,用于一些工具在编 ...

  8. PC和手机怎么实现绝对居中?

    示例1(懒人之家): http://www.51xuediannao.com/js/nav/360buy_nav.html 示例2(google官方):

  9. c++对象模型和对象内存布局

    简单对象模型:如下图所示: 每一个object是一系列的slots,每一个data member或者function member都有自己的一个slot.这种模型的空间和执行效率都很低.在这个模型中, ...

  10. VueJS处理逻辑指令:v-if

    HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...