第五章Spring核心概念
预习检查控制反转为程序开发带来的好处是什么?面向切面编程的核心思想是什么?SpringAOP的增强处理类型有哪些?集中测试2/31
回顾与作业点评简述数据持久化的概念列举下MyBatis中实现动态SQL的主要元素有哪些,以及它们的应用场景点评作业的提交情况和共性问题回顾作业点评3/31
本章任务实现“动态组装”的打印机实现“自动的”系统日志功能4/31
本章目标理解SpringIoC的原理掌握SpringIoC的配置理解SpringAOP的原理掌握SpringAOP的配置5/31
Java企业级框架企业级系统大规模:用户数量多、数据规模大、功能众多性能和安全要求高业务复杂灵活应变Java技术如何应对EJB…Spring6/31
Spring的绿草丛4-1Spring轻量级框架,JavaEE的春天,当前主流框架目标使现有技术更加易用,推进编码最佳实践内容IoC容器AOP实现数据访问支持简化JDBC/ORM框架声明式事务Web集成7/31
Spring的绿草丛4-2Spring体系结构8/31
Spring的绿草丛4-3Spring设计理念Spring是面向Bean的编程Spring两大核心技术控制反转(IoC:InversionofControl)/依赖注入(DI:DependencyInjection)面向切面编程(AOP:AspectOrientedProgramming)9/31
Spring的绿草丛4-4Spring的优点低侵入式设计独立于各种应用服务器依赖注入特性将组件关系透明化,降低了耦合度面向切面编程特性允许将通用任务进行集中式处理与第三方框架的良好整合10/31
目的:解耦合。实现每个组件时只关注组件内部的事情要点:明确定义组件间的接口控制反转/依赖注入将组件对象的控制权从代码本身转移到外部容器组件化的思想:分离关注点,使用接口,不再关注实现依赖的注入:将组件的构建和使用分开组件的使用组件的生产接口的定义运行时注入演示1:使用简单工厂11/31
Hello,Spring!如何使用Spring实现“控制反转”?编写HelloSpring类,输出“Hello,Spring!”字符串“Spring”通过Spring注入到HelloSpring类中步骤添加Spring到项目中编写配置文件编写代码获取HelloSpring实例问题分析演示示例1:Hello,Spring!12/31
学员操作—Spring依赖注入需求说明控制台输出张嘎说:“三天不打小鬼子,手都痒痒!”Rod说:“世界上有10种人,认识二进制的和不认识二进制的。要求:说话人和说话内容都通过Spring实现依赖注入添加Spring到项目编写程序代码和配置文件(同时配两个Bean)获取Bean实例,调用功能方法练习提示完成时间:15分钟13/31
共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解14/31
小结根据你的理解,什么是控制反转/依赖注入?使用SpringIoC的步骤是什么?设值注入使用bean元素定义一个组件id属性:指定一个用来访问的唯一名称name属性:指定多个别名,名字之间使用逗号、分号或空格进行分隔提问经验15/31
依赖注入综合示例如何开发一个打印机?可灵活配置使用彩色墨盒或灰色墨盒可灵活配置打印页面的大小打印机功能的实现依赖于墨盒和纸张步骤定义墨盒和纸张的接口标准使用接口标准开发打印机组装打印机运行打印机A4B5彩色墨盒灰色墨盒分析问题演示示例2:组装打印机16/31
学员操作—实现打印机功能需求说明自己动手实现打印机功能使用SpringIoC实现墨盒和纸张的灵活替换练习完成时间:20分钟17/31
共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解18/31
小结使用控制反转/依赖注入有哪些好处?什么是“简单工厂模式”?有什么优点?使用SpringIoC的步骤是什么?提问19/31
面向切面编程(AOP)3-1publicclassUserServiceImplimplementsUserService{privatestaticfinalLoggerlog=Logger.getLogger(UserServiceImpl.class);?publicbooleanaddNewUser(Useruser){log.info(“添加用户”+user.getUsername());//记录日志SqlSessionsqlSession=null;booleanflag=false; //异常处理