- 浏览: 25872 次
- 性别:
- 来自: 广州
最新评论
文章列表
[置顶] github的注册添加删除
- 博客分类:
- 代码管理
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开发手册 1.2
- 博客分类:
- java
前言
《阿里巴巴 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 * ...
java内部类:如何使用
- 博客分类:
- java
一 定义:放在一个类的内部的类我们就叫内部类。
二、 作用
1.内部类可以很好的实现隐藏
一般的非内部类,是不允许有 private 与protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.可是实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用。
三、 例子
1 实现隐藏
package cn.com.common.innerClass.demo1;
public interface Incrementable {
void increment();
}
package cn.c ...