<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
什麼是註解?
註解是程式碼裡的特殊標記,格式:
@註解名稱(屬性名稱=屬性值, 屬性名稱2=屬性值...)
可以作用在:類、方法、屬性上面。
使用註解的目的:簡化 xml 設定,讓使用設定更簡潔優雅。
這 4 個註解功能是一樣的,都可以用來建立 bean 範例。
但是通常實際應用中,為了讓開發人員更加清晰當前元件所扮演的角色,一般會讓它們各自應用在不同的層。比如 @Service 用在邏輯層、@Service 用在web層等。
範例
引入 AOP 依賴,可以在這裡搜尋下載需要的 jar 包。
其實就是告訴 spring 你要在什麼地方使用註解。通過在 xml 裡設定,spring就會到對應位置掃描下面的類:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--開啟元件掃描--> <context:component-scan base-package="com.pingguo.spring5.dao"></context:component-scan> </beans>
現在,我這裡有多個包:
如果要掃描多個包,可以用逗號,隔開:
<context:component-scan base-package="com.pingguo.spring5.dao, com.pingguo.spring5.service"></context:component-scan>
如果所有下層的包都要掃描,那也可以之間寫上層的目錄:
<context:component-scan base-package="com.pingguo.spring5"></context:component-scan>
package com.pingguo.spring5.service; import org.springframework.stereotype.Component; @Component(value = "userService") public class UserService { public void add() { System.out.println("service add() ... ..."); } }
現在終於不用去 xml 寫 bean 標籤了。
@Component(value = "userService"),這裡 value 的值,等同於 <bean id="userService" ...裡的 id 。@Component(value = "userService"),這裡括號裡的 value 可以不寫,預設就是類名稱的首字母小寫。比如 類 UserService 就是 userService 。
package com.pingguo.spring5.testdemo; import com.pingguo.spring5.service.UserService; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestService { @Test public void testService() { ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); UserService userService = context.getBean("userService", UserService.class); System.out.println(userService); userService.add(); } }
執行一下:
com.pingguo.spring5.service.UserService@60611244 service add() ... ... Process finished with exit code 0
成功。
如果把註解換成其他幾個,重新執行測試方法,結果也是一樣的。
在上述的開啟掃描設定:
<!--開啟元件掃描--> <context:component-scan base-package="com.pingguo.spring5"></context:component-scan>
意思就是說掃描包路徑com.pingguo.spring5下的所有類。
其實這裡有個屬性 use-default-filters,預設情況下就是等於true,也就是使用預設過濾規則,會去掃描路徑下的所有。
那如果use-default-filters="false",就是不使用預設過濾條件,我們可以自己設定過濾。
在指定的包路徑下,只掃描包含了某種註解的類。比如:
<context:component-scan base-package="com.pingguo.spring5" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan>
這就是說,在路徑com.pingguo.spring5下,只掃描Service註解的類。
與上面相反,這裡是除了xx之外,都去掃描。
<context:component-scan base-package="com.pingguo.spring5" use-default-filters="false"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan>
做了改動之後,意思也變了。現在是說在路徑com.pingguo.spring5下,除了Service註解的類,其他都掃描。
以上就是Spring IOC容器Bean註解建立物件元件掃描的詳細內容,更多關於Spring IOC Bean註解物件元件掃描的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45