![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构和设计
文章平均质量分 68
西北地的风
java开发者,产品爱好者,旅游粉,APP开发和设计者
展开
-
使用AOP统计方法的执行时间
currentMis(),然后得到方法的执行时间。这种方式的缺点是方法多会写很多耦合代码,而且不可重用,测试完需要删掉。 另一种使用AOP监控方法的前后点,监控方法的执行时间,比较优雅且无侵入。可行的方案之一是使用 Around Advice, 环绕通知可在方法执行前后做一些操作。 AOP,面向切面编程,Aspect Oriented Programming, 可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 3. AOP原创 2017-06-08 21:26:35 · 2489 阅读 · 0 评论 -
Sonar的安装与设置
具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。 1. 配置数据库创建sonar数据库create database sonar default charset=utf8; 配置 sonar 用户create user 'sonar' identified by 'sonar123';grant all原创 2015-07-25 17:21:17 · 274 阅读 · 0 评论 -
动态代理之CGLIB
flect.Proxy 类更强的在于它不仅可以接管接口实现类的方法,还可以接管普通类的方法.CGLib 的底层是Java字节码操作框架 —— ASM。 cglib 组织架构图 cglib是针对类来实现代理的,原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预原创 2015-07-17 17:35:46 · 72 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞的区别
个任务或事件必须顺序执行,前一个任务没执行完,后一行任务就不能进行。实现:常见的顺序编程, 串行执行场景:B/S架构的HTTP请求-响应模式、OA流程。 异步:多个任务或事情可以并行执行,任意一个任务的执行不会阻塞另外一个任务的执行。异步调用完成后,通过通知或回调将结果传递给接收者。异步常用于操作时间比较耗时的场合,为了不block当前的工作流程,而采用异步。实现:新建一个线程,或把任务放到消息队列中由消费者处理、并行处理场景:发短信、写信、写邮件、发微信,网上办电信业务(比如申请信原创 2015-07-15 14:32:55 · 193 阅读 · 0 评论 -
代理模式之动态代理
原创 2015-06-30 16:11:31 · 66 阅读 · 0 评论 -
代理模式之静态代理
原创 2015-06-29 13:06:17 · 63 阅读 · 0 评论 -
Spring配置文件常用注解
ge 为需要扫描的包,该包下的子包也会被扫描到。 @Component是所有受Spring管理组件的通用形式, @Repository、@Service和 @Controller是@Component的细化。 2. <mvc:annotation-driven />在spring-mvc-xsd中的解释是:Configures the annotation-driven Spring MVC Controller programming model原创 2015-06-18 13:53:04 · 82 阅读 · 0 评论 -
redis配置文件
原创 2015-06-08 00:12:03 · 70 阅读 · 0 评论 -
redis状态与性能监控
gt; Server hostname (default 127.0.0.1) -p <port> Server port (default 6379) -s <socket> Server socket (overrides host and port) -c <clients> Number of parallel connections (defa原创 2015-06-03 09:41:08 · 85 阅读 · 0 评论 -
观察者模式和发布/订阅模式的区别
观察者模式的角色为观察者(observer)和主题(subject)对象,observer需要观察subject时,需先到subject里面进行注册(subject对象持有observer对象的集合句柄),然后,当subject对象的内部状态发生变化时,把这个变化通知所有的观察者。 发布、订阅模式的角色为发布者(publisher)和订阅者(subscriber),pub和sub之间没有直接的耦合关系,pub发布一个消息事件(event),sub订阅感兴趣的消息原创 2015-08-02 17:19:16 · 132 阅读 · 0 评论 -
Linux以服务方式启动单个tomcat
ocal目录:[wumart@dmallsol10007 local]$ sudo mv ~/apache-tomcat-8.0.26 /usr/local/tomcat 4. 解压tomcattar -xzvf apache-tomcat-8.0.26.tar.gz tomcat的位置: /usr/local/ 5. 在 /etc/init.d下创建tomcat文件$sudo touch tomcat在tomcat文件写入内容:#!/bin/bas原创 2015-08-27 11:24:16 · 142 阅读 · 0 评论 -
Linux Shell启动多个Tomcat
、tomcat3、tomcat4 四个tomcat实例。tomcat实例的命名规则: tomcat${i} 1. 新建一个shell文件命名为 tomcat.sh#!/bin/bash # Apache Tomcat daemon # # chkconfig: 345 10 10 # description: Apache Tomcat daemon # # processname: tomcat export JAVA_HOME=/u原创 2015-09-20 09:23:41 · 529 阅读 · 0 评论 -
设计模式之---策略模式
谋,都是一种策略。需要当事者根据具体的情形,去做选择变成什么和使用哪一个计谋。 1. 策略模式类图 2. 策略模式的组成:抽象策略基类、策略实现类、调用者。基类中有抽象的算法,实现类实现具体和算法行为,调用者类持有策略接口的引用,可以灵活调用不同实现类的策略。 3. design example以外出旅行为例,有各种不同的旅行方式。策略抽象基类/** * 策略抽象基类, 具有抽象行为接口 */public interface TravelStra原创 2016-11-19 01:20:29 · 112 阅读 · 0 评论 -
聊聊缓存
原创 2016-09-29 21:44:58 · 95 阅读 · 0 评论 -
MyBatis 批量操作
原创 2016-09-02 15:24:09 · 101 阅读 · 0 评论 -
软件设计中的心跳机制
原创 2016-08-17 18:59:09 · 813 阅读 · 0 评论 -
Dubbo与Spring的配合使用
endency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version></dependen原创 2016-02-21 22:44:21 · 179 阅读 · 0 评论 -
logback异步记录日志
原创 2016-01-12 19:57:23 · 312 阅读 · 0 评论 -
Spring 初始化2次的问题
原创 2015-11-16 21:28:07 · 266 阅读 · 0 评论 -
Mongo支持地理索引
原创 2015-10-31 15:37:15 · 164 阅读 · 0 评论 -
Mac安装redis
redis-benchmark、redis-cli、redis-server、redis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:redis-server:Redis服务器的daemon启动程序redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能redis-stat:Redis状态检测原创 2015-05-28 23:53:50 · 68 阅读 · 0 评论 -
使用Jersey的两种方式
rsey.java.net,Jersey在Project使用时有两种jar实现,一种是使用sun的jar,一种是使用glassfish的jar。在web.xml中的配置:<!-- jersey web service --> <servlet> <servlet-name>Jersey Web Application</servlet-name>原创 2015-04-28 16:34:08 · 125 阅读 · 0 评论 -
Hibernate延迟加载机制
在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的延迟加载的细节。A、实体对象的延迟加载:如果想对实体对象使用延迟加载,必须要在实体的映射配置文件中进行相应的配置,如下所示:<hibernate-mapping><class name=”com.neusoft.entity.User” table=”user” lazy=”true”>原创 2012-09-17 07:51:42 · 83 阅读 · 0 评论 -
Spring mvc中一个service中使用多个dao
Description: 课件服务 * @author user * 2012-5-25 */@Component@Transactionalpublic class CourseService extends BaseService<Course> implements ICourseService<Course>{ /** 使用其他dao */ private BaseDao<Student&2012-05-26 14:09:36 · 1075 阅读 · 0 评论 -
如何自定义MVC框架
求访问类以及访问方法的标示字符串; 解析请求的URL路径,读取配置文件。③通过字符串获得Action类对象以及方法; 找出字符串对应的Action类名,加载Action类,并实例化一个对象。 ④执行方法:可以通过获得的返回值确定跳转的路径以及跳转方式。 通过动态代理机制,调用执行Action类的方法。原创 2011-06-17 17:49:45 · 63 阅读 · 0 评论 -
一个需求技术选型的考虑过程
原创 2011-06-01 17:23:04 · 204 阅读 · 0 评论 -
java中的设计模式
原创 2010-08-03 22:17:15 · 76 阅读 · 0 评论 -
jpetstore的url映射解析
示例程序,程序设计优雅,层次清晰,可以学习以及做为一个高效率的编程模型参考。 url映射方式为:http://localhost:8080/jpetstore/shop/viewCategory.shtml?categoryId=FISH ,这个是打开Fish种类的链接,在jpetstore工程中找不到有 viewCategory类的存在,所以的action都映射到一个action里:BeanAction,BeanAction扩展了struts的 Action,url可以映射到bean的方法2009-10-14 18:29:36 · 84 阅读 · 0 评论 -
用Java动态代理实现AOP
原创 2009-05-08 16:30:19 · 64 阅读 · 0 评论 -
Java对象池技术的原理及其实现
原创 2009-05-01 09:14:55 · 82 阅读 · 0 评论 -
memcached配置和使用
库的负荷。memcached的实现机制为K-V,类似Map容器机制。Windows环境下载:1. memcached的windows版本,地址在http://code.jellycan.com/memcached/,此例用的是memcached-1.2.6-win32-bin.zip。2. 启动memcached服务memcached.exe -d installmemcached.exe -d start 3. java客户端:https://github.com/gwhalin/Memc原创 2012-10-16 00:17:41 · 86 阅读 · 0 评论 -
bonecp所依赖jar包
1.13-bin.jarslf4j-log4j12-1.6.1.jarslf4j-api-1.6.1.jarlog4j-1.2.16.jarguava-r07.jar解读:Guava是Google的集合框架。slfj是日志类库原创 2013-04-15 12:38:32 · 378 阅读 · 0 评论 -
tomcat性能优化设置
er -Xms1300M -Xmx1300M -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAt原创 2013-04-25 19:19:55 · 110 阅读 · 0 评论 -
一致性哈希算法
原创 2015-04-24 14:13:23 · 94 阅读 · 0 评论 -
http请求的过程
原创 2015-04-17 09:33:53 · 75 阅读 · 0 评论 -
设计模式六大基础原则
原创 2015-02-13 00:38:20 · 83 阅读 · 0 评论 -
工厂方法模式
个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 类图:在工厂方法模式中, 有抽象产品接口,也有抽象工厂接口, 相应的是有产品实现类,和工厂具体实现类。完成实例化产品的工作在具体工厂类中。 工厂方法模式的优点: 首先,良好的封装性,代码结构清晰。一个对象创建是有条件约束的,如一个调用者需要一个具体的产品对象,只要知道这个产品的类名(或约束字符串)就可以了,不用知道创建对象的艰辛过程,减少模块间的耦合。 其次,工厂方原创 2015-02-12 00:04:17 · 83 阅读 · 0 评论 -
面向抽象编程和面向接口编程
原创 2015-02-11 13:34:19 · 459 阅读 · 0 评论 -
SSL双向通信
ing, S=BeiJing, C=CN" -keypass abcdef1 -storepass 2014server -keystore e:/keystore/server1.jks keytool -genkey -alias client1 -keysize 2048 -validity 3650 -keyalg RSA -dname "CN=ABC, OU=BetterWood CA, O=ABC Inc, L=BeiJing, S=BeiJing, C=CN&qu原创 2014-11-01 23:27:20 · 177 阅读 · 0 评论 -
SSL/TLS 协议详解
在传输层对网络连接进行加密。为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃~听。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handsha原创 2014-10-29 19:00:51 · 194 阅读 · 0 评论