如果是采用三大框架来搭建程序,这里就有一些必须的注解需要注入:
1、在Dao文件需要注入@Conponent
2、在srvices层中的每个方法注入@Transactional,还有在Dao层实例的setter方法中注入@Resource,不然会包以下错误
java.lang.NullPointerException
at com.company.service.UserManager.userList(
UserManager.java:40
)
at com.company.service.UserManager$$FastClassByCGLIB$$447bc9ab.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(
MethodProxy.java:191
)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(
Cglib2AopProxy.java:689
)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:150
)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(
TransactionInterceptor.java:110
)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:172
)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(
Cglib2AopProxy.java:622
)
at com.company.service.UserManager$$EnhancerByCGLIB$$7309362c.userList(<generated>)
at com.company.web.admin.UserAdminAction.getuser(
UserAdminAction.java:59
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(
Native Method
)
........
3、在Action层里面当实例化出一个services的Manager对象时,需要在SetManager那里注解@Autowired,不然会出错,但是有时没注解也可以运行,但不知会出什么错误,所以一般情况下都需要注解,报错错误为空指针异常,就是执行不了对应的方法。