读取jar包中的资源文件为流

InputStream resourceAsStream = this.getClass().getResourceAsStream(“/templates/index.ftl”);
BufferedReader br = new BufferedReader(new InputStreamReader(resourceAsStream));
String s=””;
while((s = br.readLine()) != null)
System.out.println(s);

代码手动注册bean到spring容器

从bean到beandefinition的过程代码实现方式

第一种方式:通过注解bean定义读取器注册类到spring容器中,代码示例如下:

AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
AnnotatedBeanDefinitionReader annotatedBeanDefinitionReader = new AnnotatedBeanDefinitionReader(applicationContext);
annotatedBeanDefinitionReader.register(Person.class);
applicationContext.refresh();
System.out.println(applicationContext.getBean("person"));

调试代码在context的beanFactory的beanDefinitionMap中可以看到person bean。

第二种方式通过classpathbeandifinitionScanner扫描

AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
ClassPathBeanDefinitionScanner classPathBeanDefinitionScanner = new ClassPathBeanDefinitionScanner(applicationContext);
classPathBeanDefinitionScanner.scan("com/example/mybatistest");
applicationContext.refresh();
System.out.println(applicationContext.getBean("person"));

spring bean 生命周期

springbean的创建周期,spring在启动时,首先扫描注解,把注解的类生产beandefinnation对象,spring容器中,然后看类是否实现了某些接口,比如beaninitialization接口,如果定义了就会调用,这些就是spirng为我们提供的扩展点。进一步看类是否使用了aop注解,transational注解,如果注解了,就会生成代理bean,注入aop方法,或者是事务管理代码。最后生成了bean放入到beandefinationMap中。

discuz站点管理员登录不上原因查找

discuz站点管理员登陆不上,网上的资料,又说权限的,又说ip限制的,但是试过不行,于是我干脆debug一下dz的代码,找原因吧。

安装我php利器,phped,新建一个内置的项目作为php的服务,又安装了个xampp作为数据库把原网站代码下载下来,debug了一同,admin登录的时候会从缓存文件里读取设置G_setting_adminipaccess,跟踪这个变量的读取,发现缓存文件data/cache/filecache/XXX/setting目录下有个xxx_setting.php,打开把里面的adminipaccess的字符改为空串,关闭浏览器,再次登录,即可。

可能是用户在后台设置了管理员ip白名单,后来用户的ip地址发生变化,导致登录不到后台所致。

郑州,再见

这次郑州之行,主要是开发测绘软件功能,测绘成果生成以后,点击成果入口,把测绘成果数据打包成rar,然后测绘公司拷贝rar到测绘管理部门,这是临时的方案,开发工具是c#,vs2010,这工具做桌面系统还是可以的。

自习室奋战的一天

学习的主要内容是函数的拐点,极值点,还有不定积分的计算。导数的性质比较抽象,特别是一些证明题,需要加强训练,多做习题。积分运算主要学习了积分的性质和凑积分法计算积分。

自习室的效率还是不错的,环境的影响可以强迫你专注学习。

今天在自习室学了一天

主要学习了泰勒公式的证明和相关习题。泰勒公式的精度问题,是根据泰勒的拉格朗日余项来解决的,这个问题比较难理解,看了两位老师的讲课才明白。

今天收获不小,感觉学习高数一定要重视公式的证明,只有了解了公式的证明,用起来才放心,另外高数公式也是丝丝相扣的,一个公式的证明往往是用上一个公式的结果。衔接性很强。还有高数的转换思想也很重要,可以举一反三,活学活用。

技术需要坚持吗?

年龄大的程序员需要转行做别的吗?因人而异吧。有人疲惫了,有人干的津津有味。我就是还没干够的那种,并不是说技术干不够,而是目标还没有实现。还差很多,每天感觉要学的东西太多。学不尽,当然别的方面也要发展,但是那只是辅助,要有一个方面有特长,不是简单的特长,而是要达到专家的级别。

在我看来,技术到达一定程度就要拜师学习。比如向同行业的专家教授学习。这样技术才会有传承。