本文笔者在广东喝咖啡的时候突然想到的...这几周就有想写几篇关于类注解的文章,所以回家到之后就奋笔疾书的写出来发表了
我们晓得采取Spring注解时,配置如下:
<context:annotation-config /> <context:component-scan base-package="cn.itkt"></context:component-scan>
这样的话,在com包及其全体子包下的全体类如果含有@Component、@Controller、@Service、@Repository等注解的话会都主动入纳到Spring器容中,但是个每类都一个个加上注解,时有不免认为繁琐,其实Spring也为我们供给了主动为类加上注解的功能。配置如下:
<context:component-scan base-package="cn.itkt" use-default-filters="false"> <context:include-filter type="regex" expression="cn.itkt.*.service.*.*" /> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan>
我们可以看到加了context:include-filter标签和context:exclude-filter标签。
context:include-filter
此标签的义含是:在其扫描到的全体类中,全体主动加上注解并入纳Spring器容中,比如有个类为
public class StudentService implements IStudentService { }
那么该标签等用于为StudentService类加上@Component注解,且bean的id为studentService。
@Component("studentService") public class StudentService implements IStudentService { }
context:exclude-filter
此标签的义含是:消除扫描到的全体类,不入纳Spring器容中。
但要需意注的是,采取主动注入,类名不能同相(即便包名不同),因为主动注入时,id与类名同相,所以如果两个类名一样的话,会因为Bean的id同相而报错。
如果类名一定要同相的话,只能是其中一个类,手动加上注解并将称名为改其他。
文章结束给大家分享下程序员的一些笑话语录: 打赌
飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。 程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。 现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。