`
文章列表
1 官网地址:https://github.com,进行注册登录   2 添加一个项目   3 如果要删除        
被滥用的service+serviceImpl     JAVA大概是从2003年开始流行,我也是从那时开始学习JAVA。在这十多年中,相关技术推陈出新,我切身感受到这些变化。虽然很多程序员不断追随新技术,但未必领悟到这些变化的推动因素。     最近我看到不少新开工的项目,仍然大量采用 “service+serviceImpl、dao+daoImpl” 的代码结构,说真的,我有点痛心,似乎这种做法是理所当然的,似乎这成了一个技术套路。 今天,我想说的是,这样做是不合理的、没有意义的、过时的。 从代码混战到分层分块     由于java的流行和互联网的普及,企业网站、企业应用的开发开始从C ...
@Autowired相当于setter,在注入之前,对象已经实例化,是在这个接口注解的时候实例化的; 而new只是实例化一个对象,而且new的对象不能调用注入的其他类 eg: 1、控制器 @controller public class BusinessShopShoesController extends BaseController {     @Autowired     private ShoesService shoesService;//相当于setter,已经实例化     } 2、业务层 @service public class ShoesService  ext ...
首先,引入注解所使用的Jar包  :common-annotations.jar 下面说明一下为什么推荐使用  @Resorce进行注解: 1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下: Java代码  收藏代码 ...
测试环境:Spring3.0.5 + Junit4.8.1 配置文件放在class目录下: [java] view plain copy ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");  WEB-INF下: [java] view plain copy ApplicationContext applicationContext = new FileSystemXmlApplicationContext("WebRoot/WEB ...
导入一个新的项目,可能会出现Java compiler level does not match  错误,这是因为eclipse和该项目的JDK编译版本不同导致的。 1,首先查看eclipse的jdk编译版本 2,搜索compile,设置编译出的文件使用的格式是JDK1.7 3,进入项目,把项目--prorerties--Java compile,把项目的编译版本设置为1.7。 4,最后,还是进入项目--properties--project Facets,将java 设置为1.7。
eclipse / MyEclipse JSP默认打开方式是 MyEclipse Visual JSP Designer 它包含了Preview界面所以很慢,而我们如果只需要看代码的话就可以在打开JSP文件时 右键JSP文件 --> Open With --> MyEclipse JSP Editor 但是这样很繁琐,所以要修改eclipse的默认打开(双击)方式 window --> preferences --> General --> Editors --> File Associations 选择相应的文件后缀名后下面会出现可 ...
前言 《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体经验总结,经历了 多次大规模一线实战的检验及不断的完善,反馈给广大开发者。现代软件行业的高速 发展对开发者的综合素质要求越来越高,因为不仅是编程知 ...
在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作。 一、MySQL 查询优化器是如何工作的MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度越快,那 ...
1、类介绍 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。 一个线程(或者多个), 等待另外N个线程完成
一. 为什么SimpleDateFormat不是线程安全的?   Java源码如下:     /** * Date formats are not synchronized. * It is recommended to create separate format instances for each thread. * If multiple threads access a format concurrently, it must be synchronized * externally. */ public class SimpleDateFormat ...
API:   join public final void join() throws InterruptedException 等待该线程终止。   抛出: InterruptedException - 如果任何线程中断了当前线程。当抛出该异常时,当前线程的中断状态 被清除。     join public final void join(long millis) throws InterruptedException 等待该线程终止的时间最长为 millis 毫秒。超时为 0 意味 ...
1 集合初始化时,指定集合初始值大小。    说明:HashMap 使用 HashMap(int initialCapacity) 初始化,   正例:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即 loader factor)默认为   0.75,如果暂时无法确定初始值大小,请设置为 16。 反例:HashMap 需要放置 1024 个元素,由于没有  设置容量初始大小,随着元素不断增加,容   量 7 次被迫扩大,resize 需要重建 hash 表,严重影响性能。   /** * ArrayList大容量性能测试 ...
一  IllegalArgumentException的重现、解决 package cn.com.common;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ComparatorTest { /** * * @ClassName: Student * @Description:内部类,不直接对外提供 * @author linsky328 * @date 2017年6月30日 上午10:54:10 * ...
一 定义:放在一个类的内部的类我们就叫内部类。   二、 作用 1.内部类可以很好的实现隐藏  一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所有元素的访问权限 3.可是实现多重继承 4.可以避免修改接口而实现同一个类中两种同名方法的调用。   三、   例子  1 实现隐藏 package cn.com.common.innerClass.demo1; public interface Incrementable { void increment(); }   package cn.c ...
Global site tag (gtag.js) - Google Analytics