发表于: 2017-12-22 23:45:06
1 564
今天完成的事:
遇到的困难:
1、报错:Prohibited package name: java
不能以java作为包名的开始,preDefineClass方法首先对类名进行了检查,发现以java作为一级包名,则抛出安全异常:禁止使用的包名!
2、对动态代理这个概念理解不透彻,明天看看基础的部分,了解一下代理的概念以及优点。
3、今天已经不是跑三大框架整合的例子了,是跑spring+mybatis的例子,又回到任务一, 和spring相关的例子一直使用容器获取,没有用过用注释获取,今天尝试了一下,遇到问题。这个应该很简单,没有解决。
空指针异常。
明天计划:
收获:
1、@Service注解
在spring的配置文件中加上自动扫描包,如果该包下有@Service,则自动注册到spring容器,不需要在配置文件中再用bean注册了。@Service(),括号里的东西相当于注册bean时的id。
<context:component-scan base-package="com.jnshu.dao"/>
<context:component-scan base-package="com.jnshu.service"/>
2、MapperScannerConfigurer是spring和mybatis整合的mybatis-spring jar包中提供的一个类。
首先了解一下MapperFactoryBean的作用:
我们创建一个MapperFactoryBean实例,然后注入这个接口和sqlSessionFactory(mybatis中提供的SqlSessionFactory接口,MapperFactoryBean会使用SqlSessionFactory创建SqlSession)这两个属性。
之后想使用这个UserMapper接口的话,直接通过spring注入这个bean,然后就可以直接使用了,spring内部会创建一个这个接口的动态代理。
当发现要使用多个MapperFactoryBean的时候,一个一个定义肯定非常麻烦,于是mybatis-spring提供了MapperScannerConfigurer这个类,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。
3、读取spring配置文件的两种方式
利用注解读取,可以指定多个配置文件,用逗号隔开
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
用容器读取
ApplicationContext ps = new ClassPathXmlApplicationContext("applicationContext.xml")
4、@RunWith
@RunWith(SpringJUnit4ClassRunner.class)
在使用所有注释前必须使用@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境
使用注释时候必须加上,spring-Mybatis不用注释则不加.
禅道:
http://task.ptteng.com/zentao/my-task.html
评论