3

1.项目引进来的jar包中的类,我们不仅可以拿来直接用,还可以继承jar包中的类,我们继承的类再本地添加一些自己的方法。
class BeanUtil extends BeanUtils {
static {
ConvertUtils.register(new DateConvert(), java.util.Date.class);
ConvertUtils.register(new DateConvert(), java.sql.Date.class);
}

public static <P> P copy(P dest, Object orig) {
try {
BeanUtils.copyProperties(dest, orig);
} catch (IllegalAccessException e) {
throw new PafaRuntimeException("bean copy Illegal exception", e);
2.捕获异常,在catch代码块,我们可以throw自己定义的异常。
try {
BeanUtils.copyProperties(dest, orig);
} catch (IllegalAccessException e) {
throw new PafaRuntimeException("bean copy Illegal exception", e);
} catch (InvocationTargetException e) {
throw new PafaRuntimeException("bean copy Invocation exception", e);
} catch (Exception e) {
throw new PafaRuntimeException("bean copy exception", e);
}

3.static方法只有一个用途和优点,就是可以不声明对象情况下使用,其他的没啥用处。static不像static变量和static代码块那样用途多。
static方法是类的方法。也就是说,类被加载到内存之后,即使没有对象的情况下也能够被正常调用的方法。
这种方法往往具有特殊性,类似于“跳出三界外,不在五行中”的感觉。
如果所有的方法都变成了静态方法的话,那Java语言就退化成过程语言了,因此绝对是不可以的。

典型的静态方法除了上面的main之外,还有,比如对类本身的一些操作,如:使用类的计数,或者工具类方法(Math.sin(), Thread.sleep())等等。
4.Spring创始人Rod Johnson
5. Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类做简单介绍。
6.BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等.
7.Betwixt XML与Java对象之间相互转换.
Codec 处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等.
Collections java集合框架操作.
Compress java提供文件打包 压缩类库.
Configuration 一个java应用程序的配置管理类库.
DBCP 提供数据库连接池服务.
FileUpload 提供文件上传功能.
HttpClient 提供HTTP客户端与服务器的各种通讯操作. 现在已改成HttpComponents
IO io工具的封装.
Lang Java基本对象方法的工具类包 如:StringUtils,ArrayUtils等等.
Validator 提供了客户端和服务器端的数据验证框架.
10.apache Commons-BeanUtils 提供了对于JavaBean进行各种操作, 比如对象,属性复制等等。

20.spring框架用到了很多common的jar包。jar之间是传递依赖引用的。比如1) spring-core.jar需commons-collections.jar,spring-core.jar是以下其它各个的基本。
21.apache的commons jar包是个非常出名的jar包集合,里面封装了很多常用的工具类。

22.工具类里面的方法为什么都是静态的?工具类,工具类嘛,就是很少使用,即使使用,也只用1两次,用完就归还。所以没必要创建对象,直接静态方法调用就行

23.Eclipse 保存Java文件时自动格式化代码和优化Import
  Eclipse中format代码的快捷方式是ctrl+shift+F,如果大家想保存 java文件的时候 自动就格式化代码+消除不必要的import 包,可以简单的做以下配置就可以实现。
答:windows->preference->java->editor->save actions选择format source code和organize import

24.常亮命名是要大写的,且为public,static的都是public的,不是private的。public final static String SCORE_TYPE_SIGN_MESSAGE = "6"; //签到送积分

25.静态代码块static{}是非常非常常用的。

26.配置文件里的一些数据,property文件里的数据。基本都是通过static代码块初始化添加进去的。
27.只有在方法上,方法修改
28.再次强调,string是个final类,任何对string的操作和修改,都不会对原有string产生任何影响。原有string不会修改。会产生一个新的string对象。
String testString = "abcd";
String testString2 = "1111";
String result = StringUtils.rightPad(testString, 7);
logger.info(result + "111");

显示结果:abcd 111
[INFO ] 2017-02-16 14:43:01,157 method:Service.CommonsLangJarTest.test(CommonsLangJarTest.java:21)
true
29.如果是StringUtils.rightPad(testString, 7)+“111”,teststring依然是abcd。加上1111后,也只是会产生一个新的string。
30.commons beanUtil类,能将一个javabean复制到另一个javabean.包括成员变量。能做javaBean的复制
33.单例模式的对象,是时刻保存在内存中的,方法区中。只有一份。单利模式的对象,只有一份!单例模式的对象只有一份。
31.在class上面添加类的注释,@author之类的
/**
* 数据对象参数字段复制
*
* @author dongxinghua327
*
*/

32.类启动读取property配置文件
package com.paic.mobile.direct;

import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;

/**
* 读取um配置文件内容
*
* @author dongxinghua327
*
*/
public class UmSecurityConfigUtils {

private static Properties config = new Properties();

private static final String CONFIG_NAME = "context-um2config.properties";

private static Log log = LogFactory.getLog(UmSecurityConfigUtils.class);

private static UmSecurityConfigUtils configUtils = new UmSecurityConfigUtils();

public static UmSecurityConfigUtils getInstance() {
return configUtils;
}

private UmSecurityConfigUtils(){
printLog();

init();
}

public String getValue(String key) {
return config.getProperty(key);
}

public String getValue(String key, String defaultValue) {
return config.getProperty(key, defaultValue);
}

private void init() {
try{
Resource resource = new ClassPathResource(CONFIG_NAME);
config = PropertiesLoaderUtils.loadProperties(resource);
} catch (Exception e) {
if(log.isErrorEnabled()) {
log.error("um load config error!", e);
}
}
}

private void printLog() {
if(!log.isInfoEnabled()) return;

log.info("****************************************");
log.info("* *");
log.info("* init UmSecurityConfigUtils *");
log.info("* *");
log.info("****************************************");
}

}

public class BeanCloneUtils
logger.info(StringUtils.isNumeric(testString2) + "");


35.专门装有static数据的类,只要被调用一次。那么这些类的static变量和static代码块就会被全部初始化了。后续代码就可以随时调用了。时刻保存在内存中。
36.static变量和static代码块的精髓在于:只要初始化一次,就是第一次初始化过了,那么这些数据就会全部保存在且一直保存在内存里了,后续代码就可以直接调用了。
不像其他对象那样,后续要用,再重新new.所以关于static变量和static代码块,可以再次理解深入了。可以没必要项目启动时,专门有个类来进行调用。只需要安静的等待代码第一次主动调用就行。后期会创建后,就一直保存在内存里了。

37.HttpServletResponse可以手动设置响应码,响应编码类型。
HttpServletResponse resp = response;
resp.setStatus(500);
resp.setContentType((new StringBuilder())
.append("text/html; charset=")
.append(request.getCharacterEncoding()).toString());

posted @ 2017-02-16 18:10  跨境电商杂货铺  阅读(486)  评论(7编辑  收藏  举报