Java修道之路:JFinal实现自动扫描Controller并设置注解的controllerkey

由于最近在研究JFinal,所以就用JFinal的框框来写例子吧。

JFinal设置Controller的访问路径是在Config的configRoute方法中设置,使用me.add(String path, Class controller),如果有多个Controller,那么需要添加多行代码!

如果Controller非常多,那么后期的更改操作将比较麻烦,所以需要自动扫描Controller,将指定的注解的属性配置到me.add方法中(这里设计为Controller添加自定义注解@PVAnnotation(path = “/visit”),path就是访问路径)。

思路:

1,根据设置的包路径获取到文件路径,使用递归得到所有的.class文件(java字节码文件),将所有的.class的Class放入一个List

2,遍历1中得到的List,通过反射判断Class有没有指定的注解,如果有就获得注解并获得对应的注解属性,如果没有就continue

继续阅读

Java修道之路:jxl操作excel的Demo和详细注释

其实也不是工作中用到了,只是有朋友在问怎么用,也觉得以后多半会用到,所有周末有时间就学学。既然学了又不用,那肯定会忘得比火箭飞得还快……记下来就是最保险的了,将就练习写的几个Demo贴出来,当作技术储备吧,虽说是Demo,但是注释超详细,至少我是这么认为的。

Demo有4个,代码比较长,分段贴出,但是所有代码是在一个类里面的。

下面是引入的包和JUnit的@Before注解

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;

import org.junit.Before;
import org.junit.Test;

import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.CellFormat;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.read.biff.BiffException;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Formula;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFeatures;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ExcelOperTest {

	private String xlsPath;

	@Before
	public void init() {
		xlsPath = "D:/test.xls";
	}

继续阅读