付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识123Spring容器对Bean组45注 Spring的作用及优势 【案例1】SpringoWorld Spring使用基础 Spring容器实例化 【案例2】Spring容器实例化 Spring容器对Bean组件的管理 【案例3】Spring容器对Bean的管理 DI依赖注入 【案例4】DI依赖注入 注解方式配置 组件自劢扫描功能 【案例5】注解方式配置 Spring的作用及优势用于SpringSpringIoCAoP。IoC全称InverseofControl(反向控制戒控制反转)。如果修改了B,A也要做相应修改。Spring架后,控spring器来负责。当A使BSpirng过配置文件迚行注入。这种思想就是IoC(为了更好的理解,我们可以这样认为,对象创建和使用的控制权转移到了Spring容器,由Spring容器来控制)。 新建新建En新建运行Test迚试(略以后只需要在oFactory中修改需要创建的组件(oBean子类对象)即可如此这般,就降低了UseBean和EnoBean(戒ZhoBean)乊间的耦合度工厂功能由Spring来实现。文档使用Spring版本为spring-framework-2.5.6.SEC01拷贝Jar包到项目下(共2个spring.jar是的Jar包;该Jar包还需要记录日志的commons-logging.jar请Spring配置文件<beans""""--><beanid="usebean"<beanid="usebean"注意:此处丌需要new实例化对象packagepackagepublicclassUseBeanpublicvoid }}publicvoid o) o 在配置文件中,通过<property>的配置,将en 到usebean中<beans""""<beanid="usebean"<propertyo"<bean obean" <bean obean" packageimportimportpackageimportimportimportpublicclassTest*@parampublicstaticvoidmain(String[]args)}}}ApplicationContextacnewClassPathXmlApplicationContext("applicationContext.xml");UseBeanbean=(UseBean)ac.getBean("usebean");可Spring使用基础Spring2】Spring 容器在实例化时,我们可2方Spring置文件,创建Spring其中ApplicationContext是BeanFactory的子类,推荐使用方式1还SpringBean也可以用<beansdefault-lazy-init="true"/>批量延迟创建用模3】Spring容器对Bean的管理packagepublicclasspackagepublicclassMyBeanpublicSystem.out.println("创建MyBean对象}}<beansxmlns=""""""<beanid="mybean"packageimportimportpublicclassTestpackageimportimportpublicclassTest*@parampublicstaticvoidmain(String[]{ApplicationContextacnew}}组件<beans""""<bean当调用(使用)MyBean时,MyBean对象被创建,如下所示privatestaticfinalprivatestaticfinalString[]CONFIGS**@parampublicstaticvoidmain(String[]{ApplicationContextacnewMyBeanbean=}对都<beans<beans"""""<beanpackageimportimportpublicclassTestpackageimportimportpublicclassTest*@parampublicstaticvoidmain(String[]{ApplicationContextacMyBeanbean1=(MyBean)ac.getBean("mybean");MyBeanbean2=(MyBean)ac.getBean("mybean");}}默认情况下,通过调用ac.getBean("mybean")方法获得的对象都是同一个mybean对象建 global 相当对属加入方法myinit()方法mydestory()packagepackagepublicclassMyBeanpublicSystem.out.println("创建MyBean}publicvoid}publicvoid}}在对<bean<beanpublicpublicclassTest*@parampublicstaticvoidmain(String[]{ApplicationContextacMyBeanbean=(MyBean)ac.getBean("mybean");}}<bean<bean那么bean对象在什么时候被销毁呢?publicclasspublicclassTest*@parampublicstaticvoidmain(String[] ApplicationContextacMyBeanbean=(MyBean)ac.getBean("mybean");}}执行了原因是因为applicationContext.xml件中设置的destory-method=""属性仅仅对单例模式起作用,在prototype模式下没有意义。<<beanDI依赖注入对IocDI4】DI的我们想beanA中使用bean方方用方packagepackageimportjava.util.List;importjava.util.Map;importjava.util.Properties;importjava.util.Set;publicclassCollectionBeanprivateList<String>privateSet<String>privatePropertiespublicvoidsetParams(Propertiesparams){this.params=params;}publicvoidsetBooks(Map<String,Object>books){this.books=books;}publicvoidsetName(Set<String>name){=name;}publicvoidsetCity(List<String>city){this.city=}}publicvoidSystem.out.println("##Lists:city){}s:name){} Set<String>keys=books.keySet();for(Stringkey:keys){}Set<Object>ids=params.keySet();id:ids){id+":}}<beansxmlns=""<!--List--<property <!--Set--<property<!--Map--<property"""<!--Properties--<property<prop<prop<prop<proppackagepackageimportimportpublicclassTestpublicstaticvoidmain(String[]{ApplicationContextacnewCollectionBeanbean=}}注解方式配置常用配置方式有XML档配置,还有一种是通过注解方式配置。采用注解方式的目的就是为了简化XML配置文件。是版组件自动扫描功能首先需要在applicationContext.xml中添加 Bean件的注解,替代xmlbean@Service于Service@ControlAction@Respository用于DAO数据组@Component用于其他组@Resource按名称@Resource(name="id@AutoWired按名@Scope等价于<bean@PostConstruct等价于<beaninit-@PreDestroy等价于<beandestroy-5】注解方式配置 注意,使用此的前提是必须具有xmlns:context命名空<beans"<beans""<<packagepackagepublic oBeanvoid }注意:容器如何找到ZhoBean的中这<beanid="zhoBean"class="tarena.demo5.Zh默认情况下,容器将类名默认情况下,容器将类名 oBean首字母小写,作为<bean>的packagepublicclass oBean oBeanpublic }packagepackageimportimportpublicclassTestprivatestaticfinalStringCONFIG=publicstaticvoidmain(String[]{ApplicationContextac}}}new o=(Zh <beans"""<bean obean"<beans"""<bean obean" packagepackagepublicpublicclass oBean oBeanpublic }publicpublicclassTestprivatestaticfinalStringCONFIG=publicstaticvoidmain(String[]{ApplicationContextacnew o}}如果我们使用UseBean调用oBean,使用注解方式该怎么做?注packagepackageimportimport{ publicvoid }publicvoid o) o }} packageimport@Service("zhpublicclass oBean oBeanpublic (){}}}packagepackageimportimportpublicclassTestprivatestaticfinalStringCONFIG=publicstaticvoidmain(String[]{Applicat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肌萎缩侧索硬化的小分子药物研究进展总结2026
- 2025朔州市二马高级职业中学工作人员招聘考试试题
- 2025江苏省相城中等专业学校工作人员招聘考试试题
- 2026年高考适应性考试(预测)语文试题及参考答案
- 基坑施工施工技术方案
- 微流控芯片技术辅助下的初中生物分子实验课题报告教学研究课题报告
- 基于人工智能的智能化自适应学习平台架构优化教学研究课题报告
- 基于5G技术的2025年城市智慧交通诱导系统可行性分析
- 高中生物实验教学中科学探究能力培养策略课题报告教学研究课题报告
- 2026年医疗AI影像识别行业创新报告
- 2025年河南省三支一扶招聘考试(3000人)(公共基础知识)测试题附答案解析
- T-CCEMA 0006-2024煤矸石基人造土壤基质
- 2025年国企物业考试试题及答案
- GB/T 3033-2025船舶与海上技术管路系统内含物的识别颜色
- 103 人工智能在教育领域的发展趋势与教师准备
- 精神分裂症测试题
- 江苏省无锡市2025年中考地理真题试卷附真题答案
- 生产管理晋升转正述职
- 疝气病人出院宣教
- 2025年南通纳米碳酸钙项目可行性研究报告
- 老年黄斑变性进展护理
评论
0/150
提交评论