spring註解@Service註解的使用解析

@Service註解的使用

要說明@Service註解的使用,就得說一下我們經常在spring配置文件applicationContext.xml中看到如下圖中的配置:

<!-- 采用掃描 + 註解的方式進行開發 可以提高開發效率,後期維護變的困難瞭,可讀性變差瞭 -->
<context:component-scan base-package="com.study.persistent" />

applicationContext.xml配置文件中加上這一行以後,將自動掃描指定路徑下的包,如果一個類帶瞭@Service註解,將自動註冊到Spring容器,不需要再在applicationContext.xml配置文件中定義bean瞭,類似的還包括@Component@Repository@Controller

如這個類:

@Service("courseDAO")
@Scope("prototype")
public class CourseDAOImpl extends HibernateDaoSupport implements CourseDAO{
......
}

其作用就相當於在applicationContext.xml配置文件裡配置如下信息:

<bean id="courseDAO"
      class="com.study.persistent.CourseDAOImpl" scope="prototype">
      ......    
</bean>

@Service("serviceName")註解相當於applicationContext.xml配置文件中配置的<bean id="serviceName">,表示給當前類命名一個別名,方便註入到其他需要用到的類中。

@Service註解也可以不指定serviceName,如果不指定相當於<bean id="com.study.service.serviceName">com.study.service.ServiceName就是這個類的全限定名,不加的話,默認別名就是當前類名,但是首字母小寫。

@service註解的簡介及使用范例

spring2.5之後出現的註解,就跟在spring配置文件裡配置bean差不多的功能,就是讓spring自動掃描管理組件,@Service@Controller@Repository@Component ,這四個其實是一樣的功能,沒有區別,隻是在MVC模式上表示的層不一樣,service一般標註在service層的bean上,controller標註在控制層,@Repository標註在view層,component通用。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: