ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:595.34KB ,
资源ID:10407872      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10407872.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(spring02笔记.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

spring02笔记.docx

1、spring02笔记Spring_day02今日内容 IOC的注解 AOP的XML的方式Spring的Bean管理的注解方式IOC注解的快速入门创建web工程,引入jar包创建相关的包和类引入配置文件,引入约束 配置包的扫描 在相应的类上添加注解Component(userDao) 相当于在Spring的配置文件中配置引入AOP的开发包Spring的IOC的注解需要引入AOP的包在Spring的4个版本中的要求。编写测试类: Test /* * SPring的IOC的注解方式 */ public void demo2() ApplicationContext applicationContex

2、t = new ClassPathXmlApplicationContext(applicationContext.xml); UserDao userDao = (UserDao) applicationContext.getBean(userDao); userDao.sayHello(); Spring的Bean管理的注解详解Component:组件Component这是一个修饰类的注解。Spring看类上是否有该注解,如果有该注解,生成这个类的实例。其实这个注解描述EE开发的三层结构的时候,不是特别清晰。所以Spring提供了三个衍生注解。三个衍生注解功能目前与Component一致。

3、为了后续的版本中进行增强的。三个衍生注解如下: Controller :修饰WEB层类 Service :修饰业务层类 Repository :修饰DAO层类属性注入的注解Value: 普通类型(String和基本数据类)使用Value注解修饰,如果使用了属性注入的注解,类中的属性可以不需要提供set方法,但如果提供了set方法,注解要加在set方法上。Autowired: 对象类型(类,对象)使用Autowired注解。如果使用Autowired默认是按照类型进行属性注入的。但是开发中习惯使用按名称进行属性注入。必须使用Autowired和Qulifer注解一起使用。其实还有一个注解Reso

4、urce注解,这个注解其实不是Spring框架提供的,制定标准的组织提供的一个注解,Spring符合这个标准的规范。Spring的Bean管理的其他的注解Bean的作用范围的注解Scope注解用来描述类的作用范围的,默认值singleton。如果配置成多例的使用prototype。Bean的生命周期相关方法PostConstruct和PreDestroy分别代表类被初始化的时候执行的方法和类被销毁的时候执行的方法。这两个注解不是经常使用。Spring的XML和注解开发的比较XML :结构更加清晰,维护方便。适合范围广。注解:开发便捷,进行属性注入的时候不需要set方法。适用范围自定义类。XML

5、和注解的整合开发XML管理类的时候很方便注解属性注入的时候很方便 Spring的AOP开发AOP的概述AOP的概念AOP:面向切面编程。AOP出现是OOP的延伸,是OOP的扩展。解决OOP中的一些问题。AOP取代传统的纵向继承体系,采用横向抽取机制。AOP的底层实现原理代理机制(代理可以增强)Spring实现AOP使用两种代理机制: * JDK动态代理 :缺陷:必须实现接口,否则不能产生代理对象 * Cglib动态代理 :第三方代理机制,采用字节码增强技术,其实是产生了类的子类对象AOP的底层实现JDK实现代理(了解)public class MyJdkProxy implements Inv

6、ocationHandler private UserDao userDao; public MyJdkProxy(UserDao userDao) this.userDao = userDao; public UserDao createProxy() UserDao proxy = (UserDao) Proxy.newProxyInstance(userDao.getClass().getClassLoader(), userDao.getClass().getInterfaces(), this); return proxy; Override public Object invoke

7、(Object proxy, Method method, Object args) throws Throwable if(save.equals(method.getName() System.out.println(权限校验=); return method.invoke(userDao, args); return method.invoke(userDao, args); Cglib实现代理(了解)第三方的代理机制,对没有实现接口的类产生代理,使用的是字节码的增强技术,其实就是产生这个类的子类。public class MyCglibProxy implements MethodIn

8、terceptor private CustomerDao customerDao; public MyCglibProxy(CustomerDao customerDao) this.customerDao = customerDao; public CustomerDao createProxy() / 创建Cglib的核心类 Enhancer enhancer = new Enhancer(); / 设置父类 enhancer.setSuperclass(CustomerDao.class); / 设置回调 enhancer.setCallback(this); / 生成代理 Custo

9、merDao proxy = (CustomerDao) enhancer.create(); return proxy; Override public Object intercept(Object proxy, Method method, Object args, MethodProxy methodProxy) throws Throwable if(save.equals(method.getName() System.out.println(权限校验=); return methodProxy.invokeSuper(proxy, args); return methodProx

10、y.invokeSuper(proxy, args); Spring的AOP的开发AOP开发中的术语Spring使用AspectJ的方式(XML方式)AspectJ:本身就是一个面向切面的框架,Spring把AspectJ引入进来作为自身AOP的开发。【步骤一:引入jar包】引入aop联盟的包spring的aop开发包aspectj的开发包spring整合aspectJ的包【步骤二:编写类】【步骤三:引入Spring的配置文件】引入了aop的约束 【步骤四:将类交给Spring】 【步骤五:AspectJ中的通知类型】前置通知 :在目标方法执行之前执行。后置通知 :在目标方法执行之后执行。环绕

11、通知 :在目标方法执行之前和之后执行。阻止目标方法的执行。异常抛出通知 :在目标方法执行出现异常的时候执行。最终通知 :无路目标方法是否出现异常,最终通知总是会被执行。引介通知【步骤六:切入点表达式的编写】AspectJ中提供了切入点的表达式,用来指定哪些包下的哪些类需要被增强。表达式基于execution函数完成的,execution(“切入点表达式”)。表达式语法:方法的访问修饰符 方法的返回值 包名.类名.方法名(参数) 1 public void com.itheima.spring.dao.*Dao.save(.) 2 void com.itheima.spring.dao.User

12、Dao.save(.) 3 * com.itheima.spring.dao.*.*(.) 4 * com.itheima.spring.dao.UserDao+.*(.) 5 * com.itheima.spring.dao.*Dao.*(.)【步骤七:编写切面类】public class MyAspectXml public void privilegeCheck() System.out.println(权限校验=); 交给Spring管理: 【步骤八:配置前置增强】 【步骤九:编写测试类】public class SpringDemo3 Test public void demo1()

13、 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applicationContext.xml); LinkManDao linkManDao = (LinkManDao) applicationContext.getBean(linkManDao); linkManDao.save(); linkManDao.update(); linkManDao.delete(); linkManDao.find(); Spring和Junit整合【引入jar包】spring-test-4.2.4.RE

14、LEASE.jar【编写测试代码】RunWith(SpringJUnit4ClassRunner.class)ContextConfiguration(classpath:applicationContext.xml)public class SpringDemo3 Resource(name=linkManDao) private LinkManDao linkManDao; /* Test public void demo1() ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applic

15、ationContext.xml); LinkManDao linkManDao = (LinkManDao) applicationContext.getBean(linkManDao); linkManDao.save(); linkManDao.update(); linkManDao.delete(); linkManDao.find(); */ Test public void demo2() linkManDao.save(); linkManDao.update(); linkManDao.delete(); linkManDao.find(); Spring的AOP中的通知的详解【前置通知】指的是在目标方法执行之前执行一段增强。前置通知可以获得切入点表达式。【后置通知】指的是在目标方法执行之后执行一段增强。后置通知获得方法的返回值。【环绕通知】指的是在目标方法执行之前和之后进行增强。阻止目标方法执行。【异常抛出通知】指的是在目标方法执行出现异常的时候执行的。获得到异常的信息。【最终通知】指的是无论是否有异常,总是被执行的。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1