<转>
Spring applicationContext.xml的<context:component-scan>標籤用途比我想像的還要實用。而且後來才知道,有了<context:component-scan>,另一個<context:annotation-config/>標籤根本可以移除掉,因為被包含進去了。原本我survery Spring3通常只配置成<context:component-scan base-package="com.foo.bar"/>,意即在base-package下尋找有@Component和@Configuration的target Class。而現在如下的飯粒:
- <context:component-scan base-package="com.foo" use-default-filters="false">
- <context:include-filter type="regex" expression="com.foo.bar.*Config"/>
- <context:include-filter type="regex" expression="com.foo.config.*"/>
- </context:component-scan>
<context:component-scan>提供兩個子標籤:<context:include-filter>和<context:exclude-filter>各代表引入和排除的過濾。而上例把use-default-filters屬性設為false,意即在base-package所有被宣告為@Component和@Configuration等target Class不予註冊為bean,由filter子標籤代勞。
filter標籤在Spring3有五個type,如下:
Filter Type | Examples Expression | Description |
annotation | org.example.SomeAnnotation | 符合SomeAnnoation的target class |
assignable | org.example.SomeClass | 指定class或interface的全名 |
aspectj | org.example..*Service+ | AspectJ語法 |
regex | org\.example\.Default.* | Regelar Expression |
custom | org.example.MyTypeFilter | Spring3新增自訂Type,實作 org.springframework.core.type.TypeFilter |
custom org.example.MyTypeFilter Spring3新增自訂Type,實作org.springframework.core.type.TypeFilter
所以上例用的regex就有個語病,com.foo.config.* 可以找到com.foo.config.WebLogger,但也可以找到com1fool2config3abcde,因為小數點在Regex是任意字元,是故要用\.把小數點跳脫為佳。(2010/3/15補充:但要使用\.方式,其use-default-filters不能為false,否則抓不到,感覺是Bug)
Spring3提供豐富的Filter支援,有益配置策略,不需面臨Configuration Hell,比如Regex的com\.foo\.*\.action\.*Config,這樣就可以找到com.foo package下所有action子package的*Config的target class。
2010/3/18補充:後來在AppConfig前忘了加@Component,AppConfig內尚留有@Bean,奇怪的是還是能work。我猜有加@Bean的method的class,若沒特別註解AppConfig是@Repository、@Service還是@Configuration,一律被Spring3視為@Component。
<!-- 采用注解的方式注入 -->
<context:component-scan base-package="com.hupun.pay" >
<context:exclude-filter type="regex" expression="com.hupun.pay.service.*"/>
</context:component-scan>
相关推荐
标题中的“51单片机控制57步进电机启停,正反转,5档加减速的图纸和程序源码注解”表明我们将探讨如何使用51系列单片机来控制57步进电机实现启停、方向切换以及五级速度调节的功能。这涉及到硬件电路设计、单片机...
这里的“按键控制启停”意味着我们需要额外添加一个输入按键,用以启动或停止跑马灯的循环。 CC2530的IO口控制:CC2530有多个可配置的GPIO端口,用于输入或输出。在跑马灯程序中,我们将选择其中几个端口作为LED的...
Spring Task是Spring框架的一部分,它提供了两种主要的方式来实现定时任务:`@Scheduled`注解和基于Quartz或Cron的任务调度。对于简单的定时任务,`@Scheduled`注解通常就足够了;而对于更复杂的任务调度需求,比如...
在这一过程中,PLC起着核心控制作用,通过接收传感器信号,控制电机启停,实现格栅的自动清洗和物料输送。 在本教程中,你将了解到以下几个关键知识点: 1. **三菱PLC硬件结构**:包括CPU、存储器、输入/输出模块...
其中的注释解释了诗中的一些典故和词语,如禹的“力献功”指的是他的治水之功,启的“惟忧”实际上是遭遇困境,冯珧利决的“冯”同“凭”,意指凭借。这些注释帮助我们更好地理解《天问》中的历史背景和深层含义。 ...
注解一般会解释每个梯形图块的功能,例如,哪个部分负责启动/停止变频器,哪个部分处理速度调节,以及如何处理异常情况。通过详细阅读这些注解,用户可以更好地理解系统的运行机制,并在需要时进行调试或修改。 ...
在 CentOS Linux 系统中,为了确保 Tomcat 服务器能够随着系统的启动而自动启动,需要进行一定的配置工作。本文将详细介绍如何通过修改配置文件的方式,将 Tomcat 配置为系统服务,并实现开机自启动。 #### 二、...
源代码展示了PLC如何编程以实现节能控制逻辑,包括但不限于使用定时器、计数器等元件来实现智能启停、动态负载识别等功能。电路图则揭示了硬件连接方式,比如电梯和扶梯的电机、限位开关、接触器等是如何与PLC配合...
1. **程序结构**:通常包括初始化程序、主循环、中断服务子程序等部分,注释会解释它们各自的作用。 2. **变量定义**:例如,可能有表示楼层、门状态、运行方向等的变量,注释会解释每个变量的具体含义。 3. **...
同时,了解注解的内容能帮助我们理解每个指令的作用,从而提升编程能力。 总之,这个压缩包提供了一个实际的三菱PLC在加油机控制中的应用案例,对于学习三菱PLC的初学者或者需要改进加油机控制系统的技术人员来说,...
它们解释了每个指令的作用,帮助程序员快速定位和修改代码,提高工作效率。注释可能包括输入/输出变量说明、程序段功能描述以及异常处理流程等。 5. **程序结构**:预缩机程序可能包含初始化、循环运行和中断服务等...
在"QT多线程简单源码学习专用注释多"这个主题中,我们将深入理解如何在QT中使用多线程来实现并发执行任务,以及如何通过主线程与子线程之间的交互来控制应用程序的行为。 首先,我们要明确多线程在QT中的基本概念。...
注解可以帮助我们快速掌握每个指令的作用,了解程序的执行顺序,以及各个部分如何协同工作。通过注解,我们可以学习到如何处理输入/输出(I/O)信号,如何编写控制逻辑,以及如何在实际工程应用中考虑安全性和稳定性...
3. 中文注释:中石化石油化工厂PLC控制程序提供了中文注释,方便工程师理解程序功能和调试,这对于项目实施和后期维护至关重要。 四、程序调试与优化 在实际应用中,PLC控制程序需要经过严格的调试,确保其符合生产...
4. **定时器和计数器**:在铬化过程中,可能需要精确的时间控制或次数控制,定时器和计数器在这些场景中起到关键作用。 5. **条件判断与逻辑运算**:利用AND、OR、NOT等逻辑运算符,实现复杂的控制逻辑,比如只有当...
注释可能包括了指令的解释、变量的作用、通讯过程的描述以及异常处理的说明等。 在实际应用中,PLC与变频器的通信步骤可能包括以下部分: 1. **配置通讯参数**:在PLC和变频器中设置相同的通讯参数,如波特率、数据...
注释通常会解释每个部分的功能、目的以及如何实现,有助于理解控制逻辑。 6. **实际应用**:在工业生产中,PLC控制变频器的例子广泛存在于生产线、电梯控制、空调系统等领域。通过精准控制电机的转速和方向,可以...
通过I/O接口,PLC接收来自传感器的实时数据,并根据预设条件或工艺流程调整执行器的工作状态,如泵的启停、加热器的功率调节等。 在深入学习这份程序时,你需要了解以下知识点: 1. **欧姆龙CJ1M系列PLC的基本结构...
注解应详细说明每个功能块的作用,关键变量的含义,以及重要的逻辑流程。 7. **通讯功能**:S7-300支持多种通讯协议,如MPI、PROFINET、Ethernet/IP等,可以与其他设备如HMI(人机界面)、SCADA系统或上级控制系统...
M340与ATV31的Modbus串行通信是一个集成控制的关键部分,它允许高效、精确地控制变频器的运行状态。通过理解Modbus通信协议,设置正确的参数,以及编写有效的PLC程序,用户可以实现对变频器的远程控制,从而提高自动...