
J2EE
文章平均质量分 91
Spring全家桶、Mybatis
袭烽
资深 APP 和前端高级研发,精通 Android/Java/H5/小程序开发,对 Uniapp、Hybrid、RN、Flutter、鸿蒙等跨端技术有深入实战和研究,主持过电商、保险、政务、K12教育、OA、HR、CRM、ERP 、办公自动化等大中型系统的研发和实施工作。
展开
-
WebService之Axis2系列教程(九)Axis2与Spring集成传递对象
我们还是用上一小节中的那个项目1、在服务器端建立一个Person类,内容如下:package sample.service;//一定要实现java.io.Serializable接口public class Person implements java.io.Serializable{ private String name ; private String ag原创 2013-08-13 13:47:38 · 3624 阅读 · 0 评论 -
WebService之Axis2系列教程(八)Axis2与Spring集成发布
在现今的Web应用中经常使用Spring框架来装载JavaBean。如果要想将某些在Spring中装配的JavaBean发布成WebService,使用Axis2的Spring感知功能是非常容易做到的。1、首先建立一个web工程,名字叫WebService,2、把相应的axis2的jar文件考到WEB-INF的lib下 3、 在项目的WebRoot下的目录结构要和以前用war包是的原创 2013-08-13 13:38:21 · 21361 阅读 · 3 评论 -
WebService之Axis2系列教程(七)异步调用WebService
在前面几篇文章中都是使用同步方式来调用WebService。也就是说,如果被调用的WebService方法长时间不返回,客户端将一直被阻塞,直到该方法返回为止。使用同步方法来调用WebService虽然很直观,但当WebService方法由于各种原因需要很长时间才能返回的话,就会使客户端程序一直处于等待状态,这样用户是无法忍受的。 当然,我们很容易就可以想到解决问题的方法,这就是多原创 2013-08-13 13:20:07 · 8486 阅读 · 0 评论 -
WebService之Axis2系列教程(六)跨服务会话(Session)管理
上文中介绍了如何使用Axis2来管理同一个服务的会话,但对于一个复杂的系统,不可能只有一个WebService服务,例如,至少会有一个管理用户的WebService(用户登录和注册)以及处理业务的WebService。象这种情况,就必须在多个WebService服务之间共享会话状态,也称为跨服务会话(Session)管理。实现跨服务会话管理与实现同一个服务的会话管理的步骤类似,但仍然有一些差别,实原创 2013-08-13 13:14:40 · 3398 阅读 · 0 评论 -
WebService之Axis2系列教程(五)会话(Session)管理
WebService给人最直观的感觉就是由一个个方法组成,并在客户端通过SOAP协议调用这些方法。这些方法可能有返回值,也可能没有返回值。虽然这样可以完成一些工具,但这些被调用的方法是孤立的,当一个方法被调用后,在其他的方法中无法获得这个方法调用后的状态,也就是说无法保留状态。 读者可以想象,这对于一个完整的应用程序,无法保留状态,就意味着只依靠WebService很难完成全部的工作。例如原创 2013-08-13 12:02:18 · 5800 阅读 · 0 评论 -
WebService之Axis2系列教程(四)使用services.xml文件发布WebService
用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。这似乎有些不方便,为此,Axis2也允许将带包的POJO类发布成Web Service。 先实现一个POJO类,代码如下: package service;原创 2013-08-13 11:50:32 · 4500 阅读 · 0 评论 -
WebService之Axis2系列教程(三)Axis2复合类型数据的传递
在实际的应用中,不仅需要使用WebService来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据。数组与类(接口)是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或返回值类型声明成数组或类(接口)。但要注意,在定义数组类型时只能使用一维数组,如果想传递多维数组,可以使用分隔符进行分隔,如下面的代码所示:String[] strA原创 2013-08-13 11:47:05 · 3839 阅读 · 1 评论 -
WebService之Axis2系列教程(二)用POJO实现零配置的WebService
对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。 下面我们来实现一个简单的POJO,代码如下: public class SimpleService {原创 2013-08-13 11:38:26 · 4877 阅读 · 1 评论 -
WebService之Axis2系列教程(一)Axis2的下载、安装和使用
Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如,可以使用WebService来发布服务端 Java类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种不同的技术来完成应用系统。WebService还经常被使用在SOA中,用于 SOA各个部分交换数据。本课程重点讲解了Axis2的核心功能,并提供了三个项目以使大家理解并掌握如何将Axis原创 2013-08-13 11:15:30 · 50328 阅读 · 10 评论 -
spring JdbcTemplate 的若干问题
spring的javadoc上讲getObject(String, Object[], Class) will return NULL if the result of the query is NUL这里有0行和nullresult的区别0行: select salary from user where 1 = 2null result: select max(salary) from user where 1 = 2 返回就是null0行一定抛出IncorrectResultSizeDataAccess原创 2010-06-24 16:37:00 · 6398 阅读 · 0 评论 -
Spring2.5 JMS整和ActiveMQ 5.5
异步进程通信是面向服务架构(SOA)一个重要的组成部分,因为企业里很多系统通信,特别是与外部组织间的通信,实质上都是异步的。Java消息服务(JMS)是用于编写使用异步消息传递的JEE应用程序的API。传统的使用JMS API进行消息传递的实现包括多个步骤,例如JNDI查询队列连原创 2011-08-23 15:53:50 · 3314 阅读 · 1 评论 -
spring IOC容器实例化Bean的方式与RequestContextListener应用
spring IOC容器实例化Bean的方式有: singleton 在spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在.prototype 每次从容器中调用Bean时,都返回一个新的实例,即原创 2011-08-05 14:19:38 · 1733 阅读 · 0 评论 -
JNDI & LDAP
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是为了Java程序访问命名服务和目录服务而提供的统一API。 命名服务,说白了就是提供一个名称键值对的管理,即Key-Value对,Key代表一个资源的名称,Value代表资源的真实地址,命名服务允许大家通过唯一的名称找到对应的对象或资源。这样程序只需要知道某种资源的名称翻译 2011-11-28 11:23:12 · 2099 阅读 · 0 评论 -
Spring Autowire自动装配
在应用中,我们常常使用标签为JavaBean注入它依赖的对象。但是对于一个大型的系统,这个操作将会耗费我们大量的资源,我们不得不花费大量的时间和精力用于创建和维护系统中的标签。实际上,这种方式也会在另一种形式上增加了应用程序的复杂性,那么如何解决这个问题呢?Spring为我们提供原创 2011-08-05 14:24:47 · 1489 阅读 · 0 评论 -
关于做Android+JavaEE系统集成开发的一点心得
前言: 很早以前,就听人说过android以后会火起来,作为一个前瞻性对它有所了解会是一个转型的好机会,javaweb太成熟饱和了,现在市面上各种android手机层出不穷,网上各种android视频连续剧一样跟进,安卓一下子成为了热门话题,刚开始也是出于个人兴趣学的很hi感觉挺容易上手的样子,后来工作中才发现问题很多也很棘手,慢慢的在纠结和痛苦中琢磨出了一些经验和规律! 1.androi原创 2011-05-23 17:11:00 · 22771 阅读 · 47 评论 -
关于Hibernate的一些常规问题
<br />1、Session的概念.<br />a) Session只是对connection做了近一部封装,虽然做了封装,但是当你open时,它不一定open了connection,而是从连接池里获取了一个connection.<br />b) Session还负责管理了缓存.<br />c) Session用完之后必须关闭,一般一个业务对应一个session,而且session不是线程安全的.<br />2、给我谈谈OpenSessionInView?<br原创 2010-12-12 23:50:00 · 1097 阅读 · 0 评论 -
request.getInputStream()读取post传递的xml文件问题
最近有个项目下需要接收POST过来的XML数据包,在servlet方法中,调用request.getInputStream() 发现无法读到任何数据。 以下是POST数据的程序代码: Java代码 URL url = new URL(urlBuf); HttpURLConnection httpURLConnection = (HttpURLConnection) url原创 2010-10-20 16:33:00 · 22042 阅读 · 5 评论 -
spring的beanFactory和factoryBean
org.springframework.beans及org.springframework.context包是Spring IoC容器的基础。BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。ApplicationContext是BeanFactory的扩展,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContext)。简而言之,BeanFactory原创 2010-07-13 12:23:00 · 1434 阅读 · 0 评论 -
利用spring的mock类进行单元测试
<br />利用spring的mock类进行单元测试: <br />spring框架提供了大量测试的mock类,包括与jndi,porlet,web应用相关的mock类。尤其是web应用相关的mock类,可以大大提高web组件测试的方便性。<br />打开spring的下载包的mock文件夹(路径...mock/org/springframework/mock/web),就发觉有如下几个文件:<br />MockHttpServletRequest:是HttpServletRequest接口的mock实现,原创 2010-07-13 12:22:00 · 6668 阅读 · 1 评论 -
ORM是什么?
<br /> 对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写原创 2010-12-12 23:46:00 · 1280 阅读 · 0 评论 -
spring系列之 回调函数的使用
spring使用了大量的回调函数,如HibernateCallBack,打开你的eclipse,ctrl+shift+t,再输入*CallBack,你可以看到有多少地方在使用回调函数,下面分析一下大牛们为什么频繁使用这个CallBack函数。废话少说,先来个例子说事儿。package com.lixuehui.callbacktest;public interface MySession ...{ public Object createMyQuery();} package原创 2010-09-13 11:46:00 · 4971 阅读 · 0 评论 -
Servlet和JSP的线程安全问题
<br />编写Servlet和JSP的时候,线程安全问题很容易被忽略,如果忽视了这个问题,你的程序就存在潜在的隐患.<br />1.Servlet的生命周期<br />Servlet的生命周期是由Web容器负责的,当客户端第一次请求Servlet时,容器负责初始化Servlet,也就是实例化这个Servlet类.以后这个实例就负责客户端的请求,一般不会再实例化其他Servlet类,也就是有多个线程在使用这个实例.Servlet之所以比CGI效率高就是因为Servlet是多线程的.如果该Servlet被声明原创 2010-06-29 10:37:00 · 1225 阅读 · 0 评论 -
程序调用飞信API发送免费短信(JAVA例子,其他语言一样用)
网上看到有网页版的飞信,http://fetionlib.appspot.com/ 可以添加好友,群发和定时发送短信给飞信好友,还开放了API接口供程序调用,可以用它来监控机器是否正常服务定期给管理员发短信,或者小规模的网站给会员发短信之类的服务。重要提示:近期所有appspot的https都惨遭RESET,请先前使用API的用户,把调用地址中https改成http简单测试一下:http:原创 2010-05-06 13:46:00 · 5096 阅读 · 1 评论 -
Compass入门指南(二)
Compass框架的参考文档,Compass是在Lucene的基础上做了封装,支持索引事务控制和增量索引,同时也能够和主流的SSH框架完美地整合在一起,操作Compass类似于操作Hibernate,它们的类/方法等设计的非常相似。下面我们通过一个实例来看看Compass到底是怎样来索引数据库,操作索引库和实现搜索功能的。 步骤一:下载Compass,目前最新版本是2.2.0,可以到http://www.compass-project.org/上下载。 步骤二:在Eclipse中新建一个Ja原创 2010-09-14 17:24:00 · 3032 阅读 · 0 评论 -
在Hibernate应用中使用视图
<br />开发环境:Eclipse3.2+MyEclipse5.01GA;框架使用:Struts+Spring+Hibernate<br />在Employee数据库中有三个表:EmployeeInfo(员工信息表)、Depts(部门表)、Business(职务表)<br /><br />EmployeeInfo表结构:<br />emp_id主键<br />emp_name<br />emp_sex<br />emp_age<br />emp_dept存储dept_id<br />emp_busines原创 2011-01-11 22:51:00 · 1511 阅读 · 0 评论 -
spring3.0发送电子邮件(velocity模板,带附件,群发,解决乱码
在这个例子中,将与发送方相关的配置信息放在了一个email.properties文件中,spring容器启动的时候会从这个属性文件中读取发送方的配置信息,这样配置的主要原因在于,发送方一般都是固定不变的。我将发送的内容放在一个velocity模板文件中,这个文件很像jsp转载 2011-07-05 18:15:47 · 5827 阅读 · 4 评论 -
WebLogic部署SSH2项目的小结
<br />前不久用Struts2+Spring3+Hibernate3做了一个简单的B2C的小项目,那是为了方便使用的Tomcat6作为服务器,但最近工作不是很忙,就尝试着把前面做的B2C部署到WebLogic10上,本以为不会有什么问题,但实际中却遇到了几个问题,总结如下:<br />① WebLogic10与Hibernate3的冲突问题<br />在网上找了很久,方案在日志{weblogic10和hibernate3 冲突解决方案(转) }中已经说明了,这里就不再说明。<br />②原创 2010-11-30 12:32:00 · 3998 阅读 · 0 评论 -
向指定URL发送GET方法的请求(java)
使用Java发送GET、POST请求——节选自《疯狂Java讲义》URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接。程序可以通过URLConnection实例向该URL发送请求、读取URL引用的资源。通常创建一个和 URL 的连接,并发送请求、读取此 URL 引用的资源需要如下几个步骤:(1)通过调用URL对象ope原创 2010-05-07 14:48:00 · 6738 阅读 · 2 评论 -
关于HttpClient的总结
关于Httpclient的使用总结如下:(1)当HttpClient的实例不再需要时,可以使用连接管理器关闭 httpclient.getConnectionManager().shutdown(); (1)当HttpClient的实例不再需要时,可以使用连接管理器关闭httpclient.getConnectionManager().shutdown();原创 2011-12-06 19:53:19 · 35658 阅读 · 3 评论 -
Hibernate事务和并发控制
<br />Hibernate事务和并发控制1. 事务介绍:1.1. 事务的定义:事务就是指作为单个逻辑工作单元执行的一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。1.2. 事务具有ACID属性:o 原子性(Atomic):事务由一个或多个行为绑在一起组成,好像是一个单独的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。o 一致性(Consistent):一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一原创 2011-05-25 12:15:00 · 1387 阅读 · 0 评论 -
Hibernate中DetachedCriteria的使用
<br /> Criteria对SQL进行封装,让开发人员可以用物件的方式来对资料库进行操作,例如下面的查询User表格中的所有资料:Criteria criteria = session.createCriteria(User.class);Criteria criteria = session.createCriteria(User.class);<br />// 查詢user所有欄位//查询user所有栏位<br />List users = criteria.list();List users =原创 2010-12-12 23:45:00 · 7436 阅读 · 0 评论 -
weblogic10和hibernate3 冲突解决方案
在Weblogic中部署Hibernate的项目启动WebLogic时一直提示:ClassNotFoundException: org.hibernate.hql.ast.HqlToken错误原因:在hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。出现这个错误之后,antlr会调用System.exit(),这样weblogic就会中止服务。 废话少说,解决办法:三原创 2010-11-30 12:31:00 · 4031 阅读 · 0 评论 -
Compass入门指南(一)
<br />在新架构中打算选择Compass或Hibernate Search作为搜索引擎框架,比较后,感觉Hibernate Search上还是没有Compass成熟,另外考虑到后期对网页的爬取及搜索需求,决定还是基于Compass来作为架构缺省的搜索引擎。网上关于Compass的文档很多,但说得相对完整其详细的入门文档基本上没有,Compass的官方文档倒是说得很详细,但是例子一塌糊涂,存在很大问题。记录一下搭建的过程,作为入门的指南。<br /> Compass 通过OSEM(Object/Se原创 2010-09-14 17:15:00 · 5582 阅读 · 0 评论 -
Hibernate HQL查询 插入 更新实例
1、实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hql).list();上面的代码执行结果是,查询出User实体对象所对应的所有数据,而且将数据封装成User实体对象,并且放入List中返回。这里需要注意的是,Hibernate的实体查原创 2012-02-08 10:58:02 · 2810 阅读 · 2 评论 -
JS+Struts2多文件上传完整示例
1、JSP页面: JS控制增加删除多个上传文件框,代码如下: Java代码 "java" pageEncoding="UTF-8"%> "s" uri="/struts-tags"%> "-//W3C//DTD XHTML 1.0 Tr原创 2010-11-30 12:37:00 · 3366 阅读 · 0 评论 -
Struts2中配置Servlet详解
Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单,今天在struts2环境中使用ajax,需要用到一个普通servlet作为ajax的服务端,配置好之后部署运行起来,出现警告: Could not find action or resultThere is no Action mapped for namespace / and action name Chk. - [unknown location]上网查了servlet的规范才发现,servlet和filter中的url-pa原创 2010-11-30 12:30:00 · 3150 阅读 · 0 评论 -
Ext+Dwr动态树(增删改)
效果展示:1.增加节点 2.删除节点3.修改节点 技术分析: 利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样DWR(根据Java类来动态生成JavaScr原创 2011-09-07 18:48:01 · 3135 阅读 · 0 评论 -
Struts2的execAndWait拦截器使用
使用execAndWait拦截器可以在等待较长时间的后台处理中增加等待页面。 1、在struts.xml input 1000--> 50--> @Override public String execute() throws Exception { while(pr原创 2011-06-07 15:03:00 · 2621 阅读 · 0 评论 -
详解spring事务属性
<br />Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。 <br />我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。 <br />Spring在TransactionDefiniti原创 2011-05-25 12:21:00 · 1074 阅读 · 1 评论 -
使用Hibernate进行大数据量的性能测试
在项目中使用Hibernate进行大数据量的性能测试,有一些总结, 1) 在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。 2) 对原创 2010-04-29 18:36:00 · 10098 阅读 · 2 评论