首頁  >  文章  >  Java  >  spring框架學習(五)註解

spring框架學習(五)註解

黄舟
黄舟原創
2016-12-29 13:17:571219瀏覽

註解Annotation,是一種類似註解的機制,在程式碼中加入註解可以在之後某個時間使用這些資訊。跟註解不同的是,註解是給我們看的,java虛擬機不會編譯,註解也是不編譯的,但是我們可以透過反射機制去讀取註解中的資訊。註解使用關鍵字@interface,繼承java.lang.annotition.Annotition


spring框架為我們提供了註解功能。
使用註解編程,主要是為了取代xml文件,讓開發更快速。但是,xml文件的使用就是解決修改程式修改原始碼,現在又不去使用xml文件,那麼不就違背了開閉原則了麼,得確是。不過麼,註解也有註解的好,使用註解就不用配置那麼多的xml檔啦,最重要的是開發效率高。 。
在沒有使用註解時,spring框架的設定檔applicationContext.xml檔案中需要配置很多的標籤,用來聲明類別物件。使用註解,則不必在設定檔中新增標籤拉,對應的是在對應類別的「註解」位置新增說明。具體介紹如下:

spring框架使用的是分層的註解。
持久層:@Repository;
服務層:@Service
控制層:@Controller

1,使用註解,需要在設定檔中增加命名空間和約束檔

<beans ...
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
... http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd ">

2,告訴框架那些類別是使用註解的。

<context:component-scan base-package="com.lsz.spring" />

3,持久層註解

Package com.lsz.spring;
 
@Repository
public class UserDao{
//。。。。
}

@Repository
等同於設定檔中的

<bean id="userDao" class="com.lsz.spring.UserDao" />

4,服務層註解

@Service(value="testService")
public classTestService {
 
@Resource//相当于自动装配
private UserDao userDao ;
 
      public UserDao getUserDao() {
              returnuserDao;
      }
      public void setUserDao(UserDao userDao) {
             this.userDao= userDao;
      }
 
}
進行組裝,如果根據名稱查找不到關聯的對象,那麼會再採用byType繼續尋找。
@Service註解等同與
<bean id="testService" class="com.lsz.spring.UserService" />


5,控制層註解
@Controller(value="ua")
@Scope(value="prototype")
public class UserAction {
 
     @Resource
     private UserService userService ;
 
     public UserService getUserService() {
          returnuserService;
     }
}
@Controller註解等同於

<bean id="ua" class="com.lsz.spring.UserAction " />

on

ServletContext application =request.getSession().getServletContext();
ApplicationContextac = WebApplicationContextUtils.getWebApplicationContext(application);
 
UserAction useraction = (UserAction)ac.getBean("ua");//获取控制层对象

response.setContentType("text/html;charset=GBK");//设置编码
PrintWriter out =response.getWriter();

//分别将三个层的对象打印出来。
out.println("Action:"+userAction);
out.println("Service:"+userAction.getUserService());
out.println("Dao:"+userAction.getUserService().getUserDao());



使用註解聲明對象,預設情況下產生的id名稱為類別名稱的首字母小寫。
6,從Spring環境中取得Action物件。 rrreee


 以上就是spring框架學習(五)註解的內容,更多相關內容請關注PHP中文網(www.php.cn)!


🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn