spring注解@Service注解的使用解析
@Service注解的使用
要說(shuō)明@Service
注解的使用,就得說(shuō)一下我們經(jīng)常在spring
配置文件applicationContext.xml
中看到如下圖中的配置:
<!-- 采用掃描 + 注解的方式進(jìn)行開(kāi)發(fā) 可以提高開(kāi)發(fā)效率,后期維護(hù)變的困難了,可讀性變差了 --> <context:component-scan base-package="com.study.persistent" />
在applicationContext.xml
配置文件中加上這一行以后,將自動(dòng)掃描指定路徑下的包,如果一個(gè)類(lèi)帶了@Service
注解,將自動(dòng)注冊(cè)到Spring
容器,不需要再在applicationContext.xml
配置文件中定義bean
了,類(lèi)似的還包括@Component
、@Repository
、@Controller
。
如這個(gè)類(lèi):
@Service("courseDAO") @Scope("prototype") public class CourseDAOImpl extends HibernateDaoSupport implements CourseDAO{ ...... }
其作用就相當(dāng)于在applicationContext.xml
配置文件里配置如下信息:
<bean id="courseDAO" class="com.study.persistent.CourseDAOImpl" scope="prototype"> ...... </bean>
@Service("serviceName")
注解相當(dāng)于applicationContext.xml
配置文件中配置的<bean id="serviceName">
,表示給當(dāng)前類(lèi)命名一個(gè)別名,方便注入到其他需要用到的類(lèi)中。
@Service
注解也可以不指定serviceName
,如果不指定相當(dāng)于<bean id="com.study.service.serviceName">
,com.study.service.ServiceName
就是這個(gè)類(lèi)的全限定名,不加的話,默認(rèn)別名就是當(dāng)前類(lèi)名,但是首字母小寫(xiě)。
@service注解的簡(jiǎn)介及使用范例
spring2.5之后出現(xiàn)的注解,就跟在spring
配置文件里配置bean
差不多的功能,就是讓spring
自動(dòng)掃描管理組件,@Service
、@Controller
、@Repository
、@Component
,這四個(gè)其實(shí)是一樣的功能,沒(méi)有區(qū)別,只是在MVC
模式上表示的層不一樣,service
一般標(biāo)注在service
層的bean
上,controller
標(biāo)注在控制層,@Repository
標(biāo)注在view
層,component
通用。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot中LocalDateTime對(duì)象返回給前端格式化解決方案
在項(xiàng)目開(kāi)發(fā)當(dāng)中前后端使用什么樣的時(shí)間格式,是一個(gè)值得關(guān)注的問(wèn)題,這篇文章主要給大家介紹了關(guān)于Springboot中LocalDateTime對(duì)象返回給前端格式化的解決方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04詳解mybatis中association和collection的column傳入多個(gè)參數(shù)問(wèn)題
這篇文章主要介紹了詳解mybatis中association和collection的column傳入多個(gè)參數(shù)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10java實(shí)現(xiàn)合并2個(gè)文件中的內(nèi)容到新文件中
這篇文章主要介紹了java實(shí)現(xiàn)合并2個(gè)文件中的內(nèi)容到新文件中,思路非常不錯(cuò),這里推薦給大家。2015-03-03Java實(shí)現(xiàn)的基于socket通信的實(shí)例代碼
Java實(shí)現(xiàn)的基于socket通信的實(shí)例代碼,需要的朋友可以參考一下2013-03-03Java?Mybatis?foreach嵌套foreach?List<list<Object>&
在MyBatis的mapper.xml文件中,foreach元素常用于動(dòng)態(tài)生成SQL查詢(xún)條件,此元素包括item(必選,元素別名)、index(可選,元素序號(hào)或鍵)、collection(必選,指定迭代對(duì)象)、open、separator、close(均為可選,用于定義SQL結(jié)構(gòu))2024-09-09java實(shí)現(xiàn)去除ArrayList重復(fù)字符串
本文主要介紹了java實(shí)現(xiàn)去除ArrayList重復(fù)字符串,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09java web response提供文件下載功能的實(shí)例講解
下面小編就為大家分享一篇java web response提供文件下載功能的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01java實(shí)現(xiàn)簡(jiǎn)單汽車(chē)租賃系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單汽車(chē)租賃系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01