




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、spring篇控制反转(IOC):应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的,控制权的转移就是所谓的反转。依赖注入(Dependency Injection):是指在运行期,由外部容器动态的将依赖对象注入到组件中.使用spring的好处:降低组件之间的耦合度,实现软件各层之间的解耦.Contoller-Service-DAO可以使用容器提供的众多服务,如:事物管理服务,消息服务等容器提供单例模式支持,开发人员不再需要自己编写实现代码容器提供AOP技术,利用它很容易实现如权限拦截,运行期监控等功能容器提供众多辅佐类,使用这些类能够加快应用的开发,如:JdbcTem
2、plate,HibernateTemplate提供集成支持,如:集成Hibernate,JPA,Struts等重量级和轻量级概念的划分:划分一个应用是否属于重量级还是轻量级,主要看它使用了多少服务,使用的服务越多,容器要为普通java对象做的工作就越多,必然影响到应用的发布时间或者是运行性能.如智使用了spring的核心服务,此时就属于轻量级,如使用了spring的大部分服务就属于重量级.使用spring需要的jarspring.jar和commons-logging.jar实例化spring容器的常用两种方式:方法一:ApplicationContext atx = new ClassPat
3、hXmlApplicationContext(new Stringbeans.xml);方法二:ApplicationContext ctx = new FileSystemXmlApplicationContext(new Stringd:beans.xml);可以指定多个,可以通过String数组传入.配置xml文件:在Preferences中输入xml在XMLCatalog中添加本地xsd文件location:E:My_eclipsexsdfilespring-aop-2.5.xsd(文件路径)keyType:Schema Location(设置本地)key:http:/www.spri
4、/schema/aop/spring-aop-2.5.xsd(在url后加上文件的名称)文件路径不能为中文,不能有空格中的属性:id:属性唯一(不能包含特殊字符)name:(可以指定特殊字符)class:指定的管理类三种实例化bean的方式:1.使用类构造器实例化2.使用静态工厂方法实例化(static)public class OrderFactorypublic static OrderServiceBean createOrder() return new OrderServiceBean();3.使用实例工厂方法实例化public class OrderF
5、actorypublic OrderServiceBean createOrder() return new OrderServiceBean();bean的作用域:默认情况下:是单实例(singleton),启动spring就实例化scope=prototype:每次从容器获取bean都是新的实例,在调用bean方法时才实例化单实例改变bean实例化的时间:默认情况下启动spring就实例化,设置lazy-init=true(延迟初始化),使其调用bean方法才实例化在中配置作用是在beans中的所有bean都执行延迟初始化设置初始化方法init-method=init(bean在初始化执行
6、的方法),释放方法destory-method=destory(bean在销毁之前执行的方法)为属性注入值(为注入的值提供set方法):注入集合类型的对象 一 二 第二种注入:使用构造器注入index为属性的位置,type为属性类型(基本数据类型可以省略),基本数据类型使用value指定值,bean对象使用ref注入值第三种使用Field注入(用于注解方式)该方法也称字段注入1.使用Field注入(用于注解方式)注入依赖对象可以采用手工装配或自动装配需要先导入common-annotations.jar aspectjrt.jar aspectjweaver.jarcglib-nodep-2.
7、1_3.jar 四个jar文件注意:在java代码中使用Autowrited或Resource注解方式进行装配区别:Autowrited默认按类型装配,Resource默认按名称装配,当找不到与名臣匹配的bean才会按类型装配 2.在bean中配置注册属性:3.在字段上添加注入属性(注入名称要和spring容器的名称匹配)Resource(name=studentDao) private StudentDao studentDao;4.bean中的配置注意:1.注入属性先按名称搜索,假如没有匹配的名称,在按类型进行搜索2.假如提供了字段的构造方法,要使用字段注入,则必须提供一个默认的构造方法通
8、过在classpath自动扫描方式把组件纳入spring容器中管理引入命名空间xmlns:context=/schema/context/schema/context/schema/context/spring-context-2.5.xsd打开组件扫描配置项扫面com.foteem包下面和子包的所有类组件自动扫描注解:Component,Service,Controller,RepositoryService用于业务层组
9、件Controller用于标注控制层组件(action)Repository用于标注数据访问,即DAO组件Component泛指组件初始化的注解PostConstruct取消单例模式Scope(prototype)AOP代理对象实现权限拦截利用代理对象spring基于AOP编程:引入AOP的命名空间配置用于对AspectJ注解的支持Aspect public class MyInterceptor Pointcut(execution (* com.softeem.bean.impl.PersonServiceBean.*(.)public void anyMethod()/声明一个切入点Be
10、fore(anyMethod() & args(person)public void doAccessCheck(Person person)System.out.println(前置通知 + t + person.getName();AfterReturning(pointcut=anyMethod(),returning=result)public void doAfterReturning(String result)System.out.println(后置通知 + result);After(anyMethod()public void doAfter()System.out.pri
11、ntln(最终通知);AfterThrowing(anyMethod()public void doAfterThrowing()System.out.println(例外通知);Around(anyMethod()public Object doBasicProfiling(ProceedingJoinPoint pjp) throws ThrowableSystem.out.println(进入方法);Object result = ceed();System.out.println(退出方法);return result;AOP表达式:execution (* com.so
12、fteem.bean.impl.*.*(.)返回值类型+包+类+方法(参数)*是通配符(所有).是指子包或是参数随意spring+Jdbc开发一,配置数据源使用数据源不同相应的属性名不同二,配置事物管理器使用JdbcTemplate jdbcTemplate;进行数据库的操作事物:(默认情况下)1.遇到运行期例外时容器会进行事物回滚(unchecked)2.如果抛出checked例外事物不会进行回滚通过Transactional(noRollbackFor=Exception.class)注解表示即使出现checked例外也进行事物回滚通过Transactional(noRollbackFor=RuntimeException.class)注解表示即使出现运行期例外也不进行事物回滚基于XML配置事物: get*表示以get开头的方法不需要配置事物为hibernate配置二级缓存,首先在beans.xml中配置hibernate的参数hibernate.cache.use_second_level_cache=truehibernate.c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精准医疗合作治疗项目合同
- 公司与个体房屋出租协议
- 山塘承包合同适用复杂情况
- 车辆矿石运输合同
- 绿色建筑技术研发合同
- 新材料生产绿色环保技术应用推广合作协议
- Module 3 Journey to space Unit 1 (教学设计)-2023-2024学年外研版英语八年级下册
- 月子中心房屋振动限制协议
- 13我能行 教学设计 -2023-2024学年道德与法治二年级下册(统编版)
- 家具厂白蚁防治施工方案
- 高压氧科工作总结高压氧科个人年终总结.doc
- 电子电路基础习题解答
- 《政治学概论》教学大纲
- 食品生物化学习题谢达平(动态)
- 保安员工入职登记表
- 断路器控制回路超详细讲解
- 签证户口本完整翻译模板
- 睿达RDCAM激光雕刻切割软件V5.0操作说明书
- 变电设备运行与维护培训课件(共102页).ppt
- 机械设计基础平面连杆机构课件
- 寒假学习计划表-
评论
0/150
提交评论