使用Spring2.5的Autowired实现注释型的IOC

Spring 2.5 注解型 IOC
介绍如何使用 Spring 2.5 的 Autowired 实现注解型的依赖注入,无需 XML 配置即可完成 Bean 的定义及依赖关系的建立。

Java代码   收藏代码
  1. 使用Spring2.5的Autowired实现注释型的IOC  
  2. 阅读(31) 评论(0) 发表时间:20090116日 11:57   
  3. 本文地址:http://qzone.qq.com/blog/55357655-1232078233   
  4.   
  5. 本文标签: Autowired context IOC xml beans  
  6.    
  7.    
  8.   使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护。(偶喜欢这个功能,因为偶对xml不感冒)。       以下是一个例子:  
  9. 先编写接口Man:  
  10.        public interface Man {  
  11.            public String sayHello();  
  12. }  
  13. 然后写Man的实现类Chinese和American:  
  14.        @Service  
  15. public class Chinese implements Man{  
  16.     public String sayHello() {  
  17.         return "I am Chinese!";  
  18.     }  
  19. }  
  20.   
  21.        @Service  
  22. public class American implements Man{  
  23.     public String sayHello() {  
  24.         return "I am American!";  
  25.     }  
  26. }  
  27.   
  28. @Service注释表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,例如Chinese实例化为chinese,American实例化为american,如果需要自己改名字则:@Service("你自己改的bean名")。  
  29.   
  30. beans.xml  
  31. <?xml version="1.0" encoding="UTF-8"?>  
  32. <beans xmlns="http://www.springframework.org/schema/beans"  
  33.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  34.         xmlns:context="http://www.springframework.org/schema/context"  
  35.         xsi:schemaLocation="http://www.springframework.org/schema/beans   
  36.            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  37.            http://www.springframework.org/schema/context  
  38.            http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
  39.       <context:annotation-config/>  
  40.       <context:component-scan base-package="testspring.main"/>  
  41. </beans>  
  42. 在spring的配置文件里面只需要加上<context:annotation-config/>和<context:component-scan base-package="需要实现注入的类所在包"/>,可以使用base-package="*"表示全部的类。  
  43.   
  44. 编写主类测试:  
  45. @Service  
  46. public class Main {  
  47.     @Autowired  
  48.     @Qualifier("chinese")  
  49.     private Man man;  
  50.   
  51.     public static void main(String[] args) {  
  52.         // TODO code application logic here  
  53.         ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");  
  54.         Main main = (Main) ctx.getBean("main");  
  55.         System.out.println(main.getMan().sayHello());  
  56.     }  
  57.   
  58.     public Man getMan() {  
  59.         return man;  
  60.     }  
  61. }  
  62.   
  63. 在Man接口前面标上@Autowired@Qualifier注释使得Man接口可以被容器注入,当Man接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串来注入。否则可以省略,只写@Autowired   
  64.   
  65. **********************  
  66. 使用 Spring 2.5 注释驱动的 IoC 功能  
  67. 发表于08-03-04 20:38 | 阅读 1285 | 评分 (暂无)   
  68. 概述  
  69.   
  70. 注释配置相对于 XML 配置具有很多的优势:  
  71.   
  72. 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。   
  73. 注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。   
  74. 因此在很多情况下,注释配置比 XML 配置更受欢迎,注释配置有进一步流行的趋势。Spring 2.5 的一大增强就是引入了很多注释类,现在您已经可以使用注释配置完成大部分 XML 配置的功能。在这篇文章里,我们将向您讲述使用注释进行 Bean 定义和依赖注入的内容。  
  75.   
  76.   
  77.   
  78.    
  79.   
  80.   
  81.  回页首   
  82.    
  83.   
  84.   
  85.   
  86. 原来我们是怎么做的  
  87.   
  88. 在使用注释配置之前,先来回顾一下传统上是如何配置 Bean 并完成 Bean 之间依赖关系的建立。下面是 3 个类,它们分别是 Office、Car 和 Boss,这 3 个类需要在 Spring 容器中配置为 Bean:  
  89.   
  90. Office 仅有一个属性:  
  91.   
  92.   
  93. 清单 1. Office.java  
  94.                   
  95. package com.baobaotao;  
  96. public class Office {  
  97.     private String officeNo =”001”;  
  98.   
  99.     //省略 get/setter  
  100.   
  101.     @Override  
  102.     public String toString() {  
  103.         return "officeNo:" + officeNo;  
  104.     }  
  105. }  
  106.    
  107.   
  108.   
  109. Car 拥有两个属性:  
  110.   
  111.   
  112. 清单 2. Car.java  
  113.                   
  114. package com.baobaotao;  
  115.   
  116. public class Car {  
  117.     private String brand;  
  118.     private double price;  
  119.   
  120.     // 省略 get/setter  
  121.   
  122.     @Override  
  123.     public String toString() {  
  124.         return "brand:" + brand + "," + "price:" + price;  
  125.     }  
  126. }  
  127.    
  128.   
  129.   
  130. Boss 拥有 Office 和 Car 类型的两个属性:  
  131.   
  132.   
  133. 清单 3. Boss.java  
  134.                   
  135. package com.baobaotao;  
  136.   
  137. public class Boss {  
  138.     
内容概要:本文围绕VMware虚拟化环境在毕业设计中的应用,重点探讨其在网络安全与AI模训练两大领域的实践价值。通过搭建高度隔离、可复现的虚拟化环境,解决传统物理机实验中存在的环境配置复杂、攻击场景难还原、GPU资源难以高效利用等问题。文章详细介绍了嵌套虚拟化、GPU直通(passthrough)、虚拟防火墙等核心技术,并结合具体场景提供实战操作流程与代码示例,包括SQL注入攻防实验中基于vSwitch端口镜像的流量捕获,以及PyTorch分布式训练中通过GPU直通实现接近物理机性能的模训练效果。同时展望了智能化实验编排、边缘虚拟化和绿色计算等未来发展方向。; 适合人群:计算机相关专业本科高年级学生或研究生,具备一定虚拟化基础、网络安全或人工智能背景,正在进行或计划开展相关方向毕业设计的研究者;; 使用场景及目标:①构建可控的网络安全实验环境,实现攻击流量精准捕获与WAF防护验证;②在虚拟机中高效开展AI模训练,充分利用GPU资源并评估性能损耗;③掌握VMware ESXi命令行与vSphere平台协同配置的关键技能; 阅读建议:建议读者结合VMware实验平台动手实践文中提供的esxcli命令与网络拓扑配置,重点关注GPU直通的硬件前提条件与端口镜像的混杂模式设置,同时可延伸探索自动化脚本编写与能效优化策略。
目录: 1、【coze自动化]基础和建立一个简单的机器人实操(2024).mp4 2、【coze自动化]实操案例用插件和工作流-提取文案1(做好.mp4 3、【coze自动化]实操案例用大模+插件+工作流-提取文案2.mp4 4、【coze自动化]实操案例用2个大模+插件+工作流-提取文案3.mp4 5、【coze自动化]实操案例完结-2大模+4插件+工作流-提取文案4.mp4 6、【扣子coze插件篇,-探索和测试插件的系统方法1].mp4 7、【扣子Coze自动化]案例实操-文本转脑图1.mp4 8、【扣子Coze自动化]如何写工作流的代码?普通人就能搞定--简单实用.mp4 9、【扣子Coze自动化]实操案例--选择器的落地应用-判断链接还是文本,mp4 10、【扣子Coze自动化]选择器分支和代码联合高级应用-让工作流更灵活应对多种场景.mp4 11、【扣子Coze自动化]如何把机器人发布平台.mp4 12_【AI案例篇]coze工作流处理1万字长文本和详细操作思路和方法.mp4 13、【扣子Coze自动化]一天500条文案详细思路--引入自定义插件.mp4 14、【扣子Coze自动化]万能自定义扣子插件--小白也能轻松搞定代码逻辑18:08.mp4 15、【扣子Coze自动化]获取官方apikey和测试自定义插件.mp4 16、【扣子Coze自动化]coze批处理,一次提炼、润色100条小爆款文案-标题-配音.mp4 17、【附加高级篇-来线下过度]3分钟提炼近百条视频文案介绍-(1).mp4 18、【附加高级篇-来线下过度]实战-3分钟提炼近百条视频文案.mp4 19、【扣子Coze附加高级篇-来线下过度】完结升级润色提炼爆款标题-3分钟提近百条文案 ............... 网盘文件永久链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值