2018.4.5第二篇博客(Spring AOP 和 SSM集成)

前言:
没有按时写博客,有忙的原因,也有赖的原因,感觉自控力还是差了些;

正文:

第一个知识点:
一/名词解释:Spring AOP aspect oritention programming 面向切面编程:
特点:把复杂方法,拆分成简单的方法,然后用根据业务需求,重新组合简单方法,提高代码的复用性;
二/AOP配置有两种方法,一种是XML配置,一个注解配置;
三/AOP对我们来说最重要的作用,就是做事务增强;一共三步走:
1/切点pointcut:在哪里增强?
2/增强transactionManager:做什么增强?
3/advice:什么时候增强?

第二个知识点:
一/SSM: Spring + SpringMVC + MyBatis
二/首先是Spring + MyBatis ;
1/配置applicationContext.xml文件
1/连接池;
2/属性占位符;
3/获取SqlSessionFactoryBean
7/AOP增强
4/扫描Mapper接口
5/组件扫描器
6/DI注解解析器
2/数据库建表,写domain
3/写mapper接口,mapper.xml
4/写service,service实现
5/测试(可以留到网页测试)
三/然后是 加入SpringMVC
1/配置mvc.xml
1/引入applicationContext.xml
2/配置SpringMVC扫描器
3/配置视图解析器
2/配置web.xml
1/配置字符拦截器
2/配置前端控制器;
3/写controller
4/写webapp,list.jsp和input.jsp
5/启动服务器,测试
四/加入高级查询
1/创建QueryObject ,PageResult ,XxxQueryObject
2/改controller
3/实习query方法,实现queryForList和queryForCount方法
4/改list,jsp页面;使用表单提交
5/测试
小结:
1/以后我的的service类是非常纯洁的,的那还却又具有事务增强的功能,就是因为它实现了接口
2/动态代理并不容易看懂,但是并不重要;
只要知道动态代理会优先选择接口(JDK动态代理);如果没有接口,就使用继承(CGLIB动态代理)
3/AOP会使用注解配置即可
遇到的异常:
40/Springday03;Spring 配置JDBC,druid报错
Caused by: java.lang.NoSuchMethodException: com.alibaba.druid.pool.DruidAbstractDataSource.<init>()
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.druid.pool.DruidAbstractDataSource]: No default constructor found;
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [cn/wolfcode/_1_jdbc/App-context.xml]: Instantiation of bean failed;

[这里写错了;]
41/Springday03 ,SpringMVC ,第一个HelloWorld项目启动报错
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
解决办法:[web.xml 的两个servlet-name不一致]
42/ Spring中出现的最多的错误,
1/是找不到bean: no qualify bean ... is defined;
这个问题的原因基本都是因为DI注入失败;
2/ DI注入失败;

43./空指针异常总结:找到那里报错,肯定是没有给值
44/classnofound异常总结 :肯定是jar包出了问题,要么丢失,要么导入失败;如果有使用maven,也可能是出现问题
45/notWritablePropertyException ,没有可以写入的属性
通俗点说就是@Setter标签不起作用,自己写,或者导错包了;
46/400 错误在SpringMVC中非常经典,表示一个坏的请求;
一定是封装参数有问题;
47/Springday04 SpringMVC日期类型的处理
48/eclipse创建项目,原地报错;

[alt + F5 更新一下maven的jar包即可]

49/SpringMVC 响应传值方式,第三种,返回字符串和共享参数,出错;

[使用注解可以解决该问题;]
50/SSM集成,事务没有生效;应该怎么检查?
如果AOP没有问题;那就是因为模拟异常的代码放到了测试类;事务已经执行完毕了;
51/SSM集成,测试后台出现错误;

[mapper.xml放错位置,应该放到resources,目录,和java相同目录文件夹下]
52/权限管理系统;事务没有生效,
在AOP没有错的情况下,该怎么检查?没有获取getClass()
53/HTTP Status 500 – Internal Server Error
javax.servlet.ServletException: Servlet.init() for servlet [springMVC] threw exception
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/db.properties]
[该资源前没有加上classpath: 表示从当前项目的资源根路径找;]
54/
HTTP Status 500 – Internal Server Error
Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.wolfcode.rbac.mapper.IEmployeeMapper.listAll
[Mapper接口和Mapper.xml文件的命名空间不匹配;]
出现该问题的原因:[1/mapper接口没有绑定在Spring上;
2/mapper接口代理没有符合规定;]
55/SSM,高级查询,前台测试报错
org.springframework.beans.factory.BeanCreationException: Could not autowire field: private cn.wolfcode.rbac.mapper.IDepartmentMapper cn.wolfcode.rbac.service.impl.DepartmentServiceImpl.departmentMapper; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [asdf] for bean with name '/emp/list.do' defined in class path resource [mvc.xml]; nested exception is java.lang.ClassNotFoundException: asdf[根据报错找错误]

小结:
SSM项目是对前面知识的总结,敲个几十遍也不为过;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值