Java
lifaming15
这个作者很懒,什么都没留下…
展开
-
手把手教你集成spring cloud + shiro微服务框架
背景假设我们有很多java实现的项目,认证授权用的是shiro框架,可能还有一个sso单点登录平台突然有一天,你的项目经理说要做微服务然后,你就给了你领导很多建议,什么dubbo、什么spring cloud等等;涉及的内容可能方方面面但是! ????该项目经理说:小明,你晚上加加班,花点时间来改造一下现有的项目就好了,我们现有的项目改造起来也不是很麻烦,另外,项目改造微服务不能影响原有的项目计划进度哦 ????此时,你的心里万马奔腾目标总的来说一句话:用最少的工作量,改造基于s转载 2020-11-08 10:44:41 · 5942 阅读 · 1 评论 -
微服务全流程分析
转自:https://zhuanlan.zhihu.com/p/101417273转眼已经2020,距离微服务这个词落地已经过去好多年!(我记得2017年就听过这个词)。然而今天我想想什么是微服务,其实并没有一个很好的定义。为什么这样说,按照微服务的定义:微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用,它是一种将应用构建成一系列按业务领域划分模块的,小的自治服务的软件架构方式,倡导将复杂的单体应用拆分成若干个功能单一、松偶合的服务,这样可以降低开转载 2020-11-07 18:23:58 · 1076 阅读 · 0 评论 -
Spring从菜鸟到高手(一)实现AOP的基本原理
Spring为Java大地带来了一阵春风,它作为一个优秀的轻量级企业应用开发框架,能够大大简化企业应用开发的复杂性。Spring以反向控制和AOP这两样先进的设计理念为基础,统一了应用对象的查找、配置和生命周期的管理,分离了业务与基础服务中的不同关注点,开发人员可以基于简单Java对象轻松的实现与EJB同样强大的功能。AOP经常被定义为一种编程技术,用来在系统中提升业务的分离,系统有很转载 2012-05-11 13:27:34 · 482 阅读 · 0 评论 -
struts2采用convention-plugin实现零配置
<br />最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置。<br />配置文件精简了,的确是简便了开发过程,但是,我们熟悉的配置突然disappear了,真是一下很不适应。跟着潮流走吧,看看该怎样来搞定convention-plugin。<br />使用Convention插件,你需要将其JAR文件放到你应用的WEB-INF/lib目录中,你也可以在你Maven项目的POM文件中添加转载 2011-05-29 18:31:00 · 655 阅读 · 0 评论 -
hibernate根据实体类获得主键属性名
<br />网上一直找了很久没有找到,看来最后只有靠自己了,我想到了sessionFactory,呵呵!<br /> <br />尝试用代码提示找查看方法,果然有个方法叫:<br /><br /> <br />哈哈,看到了吧,有用就收藏吧!原创 2011-03-03 17:27:00 · 1338 阅读 · 0 评论 -
大数据量导出Excel的方案
<br />看过很多关于Excel导出时出现内存溢出的情况,也有很多解决方案。现提供如下解决方案,如有不妥,请指正: <br />由于POI、JXL在导出excel大数据量情况下会产生大量对象最终导致内存溢出。其实Excel可以另存为html文件,保存为html后的文件内容如下: <br /><html xmlns="urn:schemas-microsoft-comfficeffice" xmlns:x="urn:schemas-microsoft-comffice:excel" xmlns=原创 2010-12-23 22:33:00 · 1762 阅读 · 0 评论 -
JDBC中sql插入数据得到主键的方法
<br />方法一:用存储过程,用SQL语句获得主键是可以的,但是维护性很差 <br />方法二:先插入数据,再查询主键,这样的查询存在风险,因为有并发的问题 <br />方法三:通过结果集获取(热荐)<br />String sql = “insert into user(name,passward) values(“lisi”,”123”)”; pstmt.conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); pstmt.exec原创 2010-12-23 22:30:00 · 732 阅读 · 0 评论 -
Spring MVC配置
<br />一,配置分发器<br />DispatcherServlet 是Spring MVC 的入口<br />所有进入Spring Web 的 Request 都经过 DispatcherServlet <br />需要在 web.xml 中注册 DispatcherServlet<br /><servlet><br /> <servlet-name>dispatherContext</servlet-name><br /> <servlet-class><br /> org.springframe原创 2010-12-23 22:26:00 · 439 阅读 · 0 评论 -
敏捷开发中编写高质量Java代码
<br />转自:http://java.csdn.net/a/20100308/259219.html<br />敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的代码质量。<br />Java项目开发过程中,由于开发人员的经验、Java代码编写习惯,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维 护,需要较大的测试投入和周期等问题。这些问题在一个项目组初建、需求和设计均具有不完全可预期性和完备性的全新项目中将尤为突出。<b转载 2010-07-20 09:39:00 · 640 阅读 · 0 评论 -
struts2标签简介
<br />用过struts1.x的人都知道,标签库有html、bean、logic、tiles,<br />而struts2.0里的标签却没有分类,只用在jsp头文件加上<br /><%@ taglib prefix="s" uri="/struts-tags" %><br />就能使用struts2.0的标签库<br /><br />下面就介绍下每个标签的用法(有错请指正):<br /><br />A:<br /><s:a href=""></s:a>-----超链接,类似于html里的<a></a><转载 2010-07-19 16:48:00 · 451 阅读 · 0 评论 -
使用 CAS 在Tomcat 中实现单点登录
单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。<br />CAS 介绍<br />CAS 是 Yale 大学转载 2010-07-19 16:39:00 · 682 阅读 · 0 评论 -
EhCache使用详细介绍
<br /> <br />Ehcache中不仅可以用配置文件来配置缓存,而在代码中也可以实现同样的功能。 <br />CacheManager singletonManager = CacheManager.create(); <br />Cache memoryOnlyCache = new Cache(“testCache”, 50000, false, false, 8, 2); <br />Cache test = singletonManager.getCache(“testCache”); <b转载 2010-07-13 15:10:00 · 2031 阅读 · 0 评论 -
Struts2 中.action和.do的奥秘
为什么Struts中.action的时候可以访问,是.do的时候不能访问呢?遇到这个问题的时候有点晕乎,在网上查了些资料,终于恍然大悟!下面把自己的经验说来给大家,希望对大家有所帮助。其实问题发生在struts.properties配置文件里,解决方法是将struts.action.extension改为如下形式struts.action.extension=do,action这样.action和.do都可以访问了。在struts.properties中还可以配置很多内容,现在列出来:下面附struts.p转载 2010-07-07 16:10:00 · 2195 阅读 · 0 评论 -
Spring事务配置的五种方式
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。总结如下:Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hiber转载 2010-07-07 14:42:00 · 492 阅读 · 0 评论 -
用PowerDesigner生成Hibernate映射文件的步骤
<br />执行:New->Conceptual Data Model<br />编译完概念模型后,再通过CDM生成PDM和OOM,注意要先生成OOM,再生成PDM。<br />在3种模型都具备时,生成JAVA CODE时才会有*.hbm.xml文件:<br /><br />执行:Tools->Generate Object-Oriented Model<br />在对话框中,选择Detail,勾选O/R Mapping,点击Enable Transformations,在多出来的选项卡Extended M转载 2010-07-06 17:00:00 · 862 阅读 · 0 评论 -
servlet 与spring aop,让AOP变得简单
<br />转自:http://deny.xhblog.com/archives/2007/233803.shtml<br />1. web.xml中还是<br /><context-param><br /> <param-name>contextConfigLocation</param-name><br /> <param-value>/WEB-INF/conf/spring/**/*-context.xml</param-value><br /> </context-param><转载 2011-05-03 17:39:00 · 1831 阅读 · 0 评论 -
使用eclipse在jsp上显示水晶报表(转)
我使用的开发IDE是eclipse3.2,服务器是tomcat5.5新建一个 Crystal reports web项目在Target runtime选择apache tomcat v5.5下一步中crystal reports java reportin转载 2011-09-04 23:06:08 · 861 阅读 · 0 评论 -
JVM内存错误问题的处理建议
Unloading class sun.reflect.GeneratedMethodAccessor问题可能的原因一:由于Xms和Xmx设置大小不当造成的,当程序进行反射操作时没有内存进行此操作。 解决方案:使用-XX:PermSize 与 -XX:MaxPermSize 来增加Perm空间大小。因为通过reflect调用方法,实际上,都会生成一个实际的class,并且在perm转载 2011-12-15 20:34:32 · 1067 阅读 · 0 评论 -
Swagger与SpringMVC项目整合
为了方便的管理项目中API接口,在网上找了好多关于API接口管理的资料,感觉目前最流行的莫过于Swagger了,功能强大,UI界面漂亮,并且支持在线测试等等,所以本人仔细研究了下Swagger的使用,下面就如何将Swagger与个人的SpringMVC项目进行整合做详细说明:最终API管理界面:详细步骤:Step1:项目中引入相关jar包:?转载 2016-03-18 11:15:39 · 877 阅读 · 0 评论 -
几种任务调度的 Java 实现方法与比较
前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 Quartz开源工具包 JCronTab此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。回页首Timer相信大家都已经转载 2013-04-28 12:24:19 · 595 阅读 · 0 评论 -
jbpm5.3+oracle_11g+jboss-as-7.1.1+myeclipse10.6环境搭建
一、准备1.1、安装jdk7并设置好环境变量;1.2 安装oracle 11g,本文以oracle.home代表oracle11g的安装路径, 默认数据库实例orcl。启动oracle数据库, 建立jbpm5.3所需的表空间JBPM,建立两个用户(jbpm5,jbpm5)、(task,task )并授予dba权限 ;1.3、安装myeclipse10.6,本文以mye转载 2013-03-31 15:03:17 · 1358 阅读 · 0 评论 -
MongoDB ODM 框架MongoMongo-简化你的数据存储
MongMongo是一个用Java写的ODM框架,使得对MongoDB的操作更加便捷。 MongoMongo努力为Java开发者提供类似于ActiveORM 或者 Hibernate的操作API,并且保留了MongoDB的schemaless,document-based 设计,动态查询,原子修改操作等特性。当然你可以很方便的绕开MongoMongo而使用Java Driver转载 2013-03-10 12:13:26 · 957 阅读 · 0 评论 -
Hibernate高级技巧:数据过滤器-使用XML和标注
Hibernate数据过滤器是一个创新的方法,以一种更具可重用性的方式和“可视化”规则来过滤从数据库获取的数据。数据过滤器有一个唯一的名字,可进行全局访问,并能接受参数值用于过滤规则。可以在Hibernate session中启用或禁用数据过滤。请看下面的Hibernate数据过滤器示例。在这个示例程序中,定义了一个数据过滤器,使用指定的日期过滤集合数据。Hibernate数据过滤转载 2013-03-10 12:05:21 · 1710 阅读 · 0 评论 -
Hibernate 如何使用filter
@Entity @Table(name = "T_SEN_DISABILITY_TYPE") 在使用filter的时候还需要定义filter参数。 name 为filter名称,parameters为filter参数,@ParamDef为参数定义,其中那么为appOrCase(参数名称) type为该参数类型 @FilterDef(name = "appOrCaseFilter", p转载 2013-03-10 11:57:59 · 5578 阅读 · 0 评论 -
Hibernate数据拦截与事件监听
拦截器(Interceptor)org.hibernate.Interceptor接口定义了Hibernate中通用拦截机制创建Session对象的时候,所有的Session对象或者这个Session对象的所有持久化操作的动作都会被指定的拦截器进行拦截.Interceptor接口的方法afterTransactionBegin()当一个事务时候启动时,会立刻调用这个转载 2013-03-10 19:33:25 · 2290 阅读 · 0 评论 -
手动创建索引及全文检索
/** * 创建索引 * @param path */ public void createIndex(String path){ try { IndexWriter writer = new IndexWriter(path,new StandardAnalyzer(),true);原创 2012-12-03 20:23:20 · 1097 阅读 · 0 评论 -
Hibernate的那些事-manyToOne注解映射(Map集合)
1:一对多的一方:package collections.map;import java.util.HashMap;import java.util.Map;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.GeneratedValue;转载 2012-09-12 09:16:41 · 1850 阅读 · 1 评论 -
在mysql中建立树形结构
这个不是什么新东西了,网上有很多方法,我也尝试了其中好的方法,都不尽人意,这是我最后我推荐的方法,共享一下,大家一起讨论,当然难如高手法眼,呵呵。我就直接贴代码了,有问题就联系我。mysql中要有树形结构我认为表中应该有如写字段:举例菜单表menu:create table menu( id int not null auto_increme原创 2012-06-14 15:23:28 · 4780 阅读 · 2 评论 -
Spring从菜鸟到高手(二)AOP的真正实现
经过了前面一章的学习大家基本理解了SpringAOP的简单工作原理,但是那只是最基本的一些操作,Spring的设计师们知道我们不想在诸如得到一个代理类、需要实现哪些接口 这些琐碎的事情上牵扯过多的经历,毕竟我们是中国软件产业的栋梁我们还要做更重要的事情。^_^ 所以他们给我们准备了好多好东西,下面我就来介绍一下拦截器接口MethodBeforeAdvice 所在包org.springfram转载 2012-05-11 13:28:08 · 472 阅读 · 0 评论 -
PowerDesigner中设置Hibernate一对多,多对一属性
<br />例如:表示主机HOST含有多个磁盘DISK关系:<br /><br />在PD的OOM中双击一条关系连线,设置Navigate,这样才会在各自hbm.xml中生成many-to-one及one-to-many关系。<br /><br /><br /><br />另外,根据“附文”的效率说明还需要设置:由多方DISK维护关系,并且当HOST更新时,也要更新DISK。<br /><br /><br /><br />生成的HBM.XML如下:<br />HOST的:<br /> <joine转载 2010-07-06 17:04:00 · 1331 阅读 · 0 评论 -
DWR Reverse Ajax功能实践的要点
<br />Reverse Ajax主要是在BS架构中,从服务器端向多个浏览器主动推数据的一种技术。它的一种实现就是客户端向服务器请求后,服务器不立即回应,从而导致一个http长连接,等到有更新数据的时候,再利用这个连接“主动”向客户端回送。<br />如果是初次接触,那一定要看下这篇文章<br />其中,详述了这种技术和JETTY服务器Continuations功能结合时的强大性能:运行在非阻塞方式下,当多个客户端请求时不会占用过多线程。<br />最后,此文申明DWR的实现已经天然使用了JETTY这一功转载 2010-07-06 16:52:00 · 559 阅读 · 0 评论 -
Java与XML读写之SAX篇
我们还是沿用讲DOM的时候使用的那个文档例子,但首先,我们先看一个简单一些的应用,我们希望能够统计一下XML文件中各个标签出现的次数。这个例子很简单,但是足以阐述SAX编程的基本思路了。 一开始当然还是import语句了: import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.*; import org.xml.sa原创 2007-08-18 16:07:00 · 4486 阅读 · 0 评论 -
Java与XML读写之DOM篇
DOM初步 DOM是Document Object Model的缩写,即文档对象模型。前面说过,XML将数据组织为一颗树,所以DOM就是对这颗树的一个对象描叙。通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取XML文档的内容。 下面我们来看一个简单的例子,看看在DOM中,我们是如何来操作一个XML文档的。 这是一个XML文档原创 2007-08-18 15:59:00 · 1799 阅读 · 0 评论 -
Apache Ant资料
1 Ant是什么? Apache Ant 是一个基于 Java的生成工具。生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本2 下载、安装Ant 安装Ant下载.zip文件,解压缩到c:/ant1.3(后面引用转载 2007-08-14 10:16:00 · 1276 阅读 · 0 评论 -
Java中的正则表达式(Java Regex)
很多人都知道正则表达式,知道它强大的功能.有些人会写,却不知道怎么用;甚至有些人连正则表达式都还不会写.只要你曾经学会了一门语言中的正则表达式的使用,那么相信Java中的正则表达式也不难,其他语言用法也不离其终.下面我一一给大家讲解.正则表达式和Java语法没有关系,它是JDK1.4版本引入的内容,Java中对正则表达式的操作被封装在几个类中.有java.util.regex.Pattern,原创 2007-08-14 10:25:00 · 31877 阅读 · 1 评论 -
Apache jakarta commons Digester用法
XML已经成为了我们开发过程中不可缺少的技术。我们可以用它来描述程序的配置,适配不同的数据格式,甚至作为数据库使用。帮助处理XML的工具很多,它们让我们活得更轻松。Jakarta Commons下的Digester就是一个不错的工具。它提供了一种将XML与Java对象进行映射的方便方法。这么说可能让新手更迷惑,还是举个例子吧!我们有这样一个XML文件:1. 2.原创 2007-08-14 10:09:00 · 1483 阅读 · 0 评论 -
spring中对hibernate的支持
源自:JavaFeng (个人网站) spring中对hibernate的支持是非常强大的,从一个简单的例子就看得出来,从这个例子中我们还将对所谓的轻量级容器做一些讨论。 首先需要配置数据源,通常我们有两种方式获得Connection,一是自己编写代码获得连接,二是从JNDI环境中得到DataSource,然后产生一个Connection。无论怎样,既然是spring下面的对象,就应该注册到原创 2007-06-30 13:51:00 · 962 阅读 · 0 评论 -
处理超出打开游标的最大数异常
在执行如下代码时,经常会出现ora-01000: maximum open cursors exceeded异常for(int i=0;i { prepstmt = conn.prepareStatement(sql[i]); prepstmt.setBigDecimal(1,nb.getRealCost()); prepstmt.setString(2, a转载 2007-06-23 19:59:00 · 1392 阅读 · 0 评论 -
Hibernate自定义类型
Hibernate 提供了客户化映射类型接口,允许用户以编程的方式创建自定义的映射类型,以便把持久化类的任意类型的属性映射到数据库中.例1的PhoneUserType实现了net.sf.hibernate.UserType接口,它能够把Customer类的Integer类型的phone属性映射到CUSTOMER表的VARCHAR类型的PHONE字段.例1:package mypack;原创 2007-06-22 14:31:00 · 1083 阅读 · 0 评论 -
实现CompositeUserType接口
Hibernate还提供了一个CompositeUserType借口,它不仅能完成和UserType相同的功能,而且还提供了对Hibernate查询语言(HQL)的支持.下面通过例子来介绍CompositeUserType接口的方法.假定在Customer类中包含了一个Name类型的name属性,代表客户的姓名.例1是Name类的源程序.例1:package mypack;impo原创 2007-06-23 18:23:00 · 1797 阅读 · 0 评论