在普通的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. Ubuntu16 编译源码出错 unsupported reloc 43

    错误如下 prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6//x86_64-linux/include/c++/4.6/bits/basi ...

  2. PHP 几个常用的正则表达式

    记录几个PHP中比较常用的正则. , $max_len = 20){ if (empty($username)) { return false; } $match = '/^(?![0-9]+$)[\ ...

  3. ../wxs/utils.wxs not found from

    ../wxs/utils.wxs not found from 微信小程序,使用Vant Weapp时,引入到项目中时报以下错误: ... ../wxs/utils.wxs not found fro ...

  4. postgresql 10 ltree 使用说明

    官方文档 https://www.postgresql.org/docs/10/static/ltree.html ltree是俄罗斯Teodor Sigaev和Oleg Bartunov共同开发的P ...

  5. 天梯赛 - L2-005 集合相似度

    题目链接:https://www.patest.cn/contests/gplt/L2-005 这个题理解是个大问题啊,“给定两个整数集合,它们的相似度定义为:Nc/Nt*100%.其中Nc是两个集合 ...

  6. POJ 3368.Frequent values-处理数据+RMQ(ST)

    昨天写的博客删了,占坑失败,还是先把RMQ玩的6一点再去搞后面的东西.废话少说,题解题姐姐_(:з」∠)_      Frequent values Time Limit: 2000MS   Memo ...

  7. 作妖系列——更改spyder黑色主题

    https://blog.csdn.net/bat67/article/details/83932835 For Anaconda3 users on Windows 10 : 下载安装QDarkSt ...

  8. Codeforces 551E GukiZ and GukiZiana(分块思想)

    题目链接 GukiZ and GukiZiana 题目大意:一个数列,支持两个操作.一种是对区间$[l, r]$中的数全部加上$k$,另一种是查询数列中值为$x$的下标的最大值减最小值. $n < ...

  9. 利用例子来理解spring的面向切面编程

    最近学习了spring的面向切面编程,在网上看到猴子偷桃的例子,觉得这种方式学习比书本上讲解有趣多了,也便于理解.现在就来基于猴子偷桃写个基本的例子. maven工程:

  10. 51Nod 约数之和

                              1220 约数之和                                  题目来源: Project Euler 基准时间限制:3 秒 ...