欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

springMVC中常用注解有哪些-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“springMVC中常用注解有哪些”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“springMVC中常用注解有哪些”這篇文章吧。

為北戴河等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及北戴河網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站建設(shè)、北戴河網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

一,使用注解:

    在spring的配置文件applicationContext.xml中,加入注解掃描。配置項就配置了對指定的包進行掃描,以實現(xiàn)依賴注入。

<?xml version="1.0" encoding="UTF-8"?> 
<span ><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" 
xmlns:aop="http://www.springframework.org/schema/aop"
  xsi:schemaLocation=" 
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 
  <aop:aspectj-autoproxy/> 
  <context:annotation-config/> 
  <context:component-scan base-package="com.test" /> //去哪掃描
</beans>

二,常見注解:

@Controller
@Service
@Autowired
@RequestMapping
@RequestParam
@ModelAttribute
@Cacheable
@CacheFlush
@Resource
@PostConstruct
@PreDestroy
@Repository
@Component (不推薦使用)
@Scope
@SessionAttributes
@InitBinder
@Required
@Qualifier

三,常用spring注解:

@Controller(運用于表現(xiàn)層)

使用@Controller注解標識UserAction之后,就表示要把UserAction交給Spring容器管理,在Spring容器中會存在一個名字為"userAction"的action,這個名字是根據(jù)UserAction類名來取的。注意:如果@Controller不指定其value【@Controller】,則默認的bean名字為這個類的類名首字母小寫,如果指定value【@Controller(value="UserAction")】或者【@Controller("UserAction")】,則使用value作為bean的名字。

這里的UserAction還使用了@Scope注解,@Scope("prototype")表示將Action的范圍聲明為原型,可以利用容器的scope="prototype"來保證每一個請求有一個單獨的Action來處理,避免struts中Action的線程安全問題。spring 默認scope是單例模式(scope="singleton"),這樣只會創(chuàng)建一個Action對象,每次訪問都是同一Action對象,數(shù)據(jù)不安全,struts2 是要求每次次訪問都對應(yīng)不同的Action,scope="prototype" 可以保證當(dāng)有請求的時候都創(chuàng)建一個Action對象

@Controller

@Scope("prototype")
public class UserAction extends BaseAction<User>{  
}

@ Service(運用于業(yè)務(wù)邏輯層)

注意,@service注解是在服務(wù)接口的實現(xiàn)類下,而不是接口中使用。

這里很好的體現(xiàn)了spring中的控制反轉(zhuǎn),我們不在讓對象自己去實例化對象,去主動依賴對象,而是 專門用一個容器來創(chuàng)建對象,由IOC進行管理。實例:

Action要使用UserServiceImpl時,就不用主動去創(chuàng)建UserServiceImpl的實例了,創(chuàng)建UserServiceImpl實例已經(jīng)交給Spring來做了,Spring把創(chuàng)建好的UserServiceImpl實例給Action,Action拿到就可以直接用了。Action由原來的主動創(chuàng)建UserServiceImpl實例后就可以馬上使用,變成了被動等待由Spring創(chuàng)建好UserServiceImpl實例之后再注入給Action,Action才能夠使用。這說明Action對“UserServiceImpl”類的“控制權(quán)”已經(jīng)被“反轉(zhuǎn)”了,原來主動權(quán)在自己手上,自己要使用“UserServiceImpl”類的實例,自己主動去new一個出來馬上就可以使用了,但現(xiàn)在自己不能主動去new“UserServiceImpl”類的實例,new“UserServiceImpl”類的實例的權(quán)力已經(jīng)被Spring拿走了,只有Spring才能夠new“UserServiceImpl”類的實例,而Action只能等Spring創(chuàng)建好“UserServiceImpl”類的實例后,再“懇求”Spring把創(chuàng)建好的“UserServiceImpl”類的實例給他,這樣他才能夠使用“UserServiceImpl”,這就是Spring核心思想“控制反轉(zhuǎn)”,也叫“依賴注入”,“依賴注入”也很好理解,Action需要使用UserServiceImpl干活,那么就是對UserServiceImpl產(chǎn)生了依賴,Spring把Acion需要依賴的UserServiceImpl注入(也就是“給”)給Action,這就是所謂的“依賴注入”。對Action而言,Action依賴什么東西,就請求Spring注入給他,對Spring而言,Action需要什么,Spring就主動注入給他。

@Service("userService")
public class UserServiceImpl implements UserService {
}

@ Repository(運用于數(shù)據(jù)管理層)

筆者是使用工具反向生成的實體層數(shù)據(jù)Model跟mapper,所以也沒用到這個注解,不過這個就是簡單的向spring容器中注入一個Bean

@Repository(value="userDao")
public class UserDaoImpl extends BaseDaoImpl<User> {
}

四,常用springMVC注解:

@Autowired(按類型注入)

對類成員變量、方法及構(gòu)造函數(shù)進行標注,完成自動裝配的工作。簡單來說就是調(diào)用Bean,告訴spring這個存在與被管理的容器中。

@Autowired 根據(jù)bean 類型從spring 上線文中進行查找,注冊類型必須唯一,否則報異常

@Autowired 標注作用于 Map 類型時,如果 Map 的 key 為 String 類型,則 Spring 會將容器中所有類型符合 Map 的 value 對應(yīng)的類型的 Bean 增加進來,用 Bean 的 id 或 name 作為 Map 的 key。

@Autowired 還有一個作用就是,如果將其標注在 BeanFactory 類型、ApplicationContext 類型、ResourceLoader 類型、ApplicationEventPublisher 類型、MessageSource 類型上,那么 Spring 會自動注入這些實現(xiàn)類的實例,不需要額外的操作。

@Autowired
private IReportService reportService ;
@Resource(按名稱注入)

跟@Autowired類似,@Resource 默認按bean的name進行查找,如果沒有找到會按type進行查找

@Resource
private DataSource dataSource; // inject the bean named 'dataSource'
@Resource(name="dataSource")
@Resource(type=DataSource.class)
延伸問題:什么是按類型進行裝配,什么是按名稱進行裝配?

所謂按類型,就是當(dāng)Spring容器中存在一個與指定屬性類型相同的bean,那么將該屬性進行自動裝配;如果存在多個該類型的bean,那么跑出異常,并指出不能使用按類型進行自動裝配;如果沒有找到匹配的bean,則什么事都不發(fā)生。
所謂按名稱,即根據(jù)屬性名進行自動裝配,此項會檢查Spring容器中與該屬性名完全一致的的bean,進行自動裝配。

@RequestMapping(映射請求地址)

用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑。

其中有六個屬性,分別為:

1、 value, method;

value:     指定請求的實際地址,指定的地址可以是URI Template 模式(后面將會說明);

method:  指定請求的method類型, GET、POST、PUT、DELETE等;

2、consumes,produces

consumes: 指定處理請求的提交內(nèi)容類型(Content-Type),例如application/json, text/html;

produces:    指定返回的內(nèi)容類型,僅當(dāng)request請求頭中的(Accept)類型中包含該指定類型才返回;

3、params,headers

params: 指定request中必須包含某些參數(shù)值是,才讓該方法處理。

headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。

@Controller
@RequestMapping("/bbtForum.do")
public class BbtForumController {
  @RequestMapping(params = "method=listBoardTopic")
  public String listBoardTopic(int topicId,User user) {}
}
@RequestMapping("/softpg/downSoftPg.do")
@RequestMapping(value="/softpg/ajaxLoadSoftId.do", method=RequestMethod.POST)
@RequestMapping(value="/osu/product/detail.do", params={"modify=false"}, method=RequestMethod.POST)

 @RequestParam(獲取請求參數(shù)的值)

比如我們在瀏覽器的訪問地址是:localhost:8080/hello?id=1000,則拿到id的值,例如:

@RestController
public class HelloController {
 
  @RequestMapping(value="/hello",method= RequestMethod.GET)
  public String sayHello(@RequestParam("id") Integer id){
    return "id:"+id;
  }
}

@PathVaribale  (獲取url中的數(shù)據(jù))

@RestController
public class HelloController {
 
  @RequestMapping(value="/hello/{id}",method= RequestMethod.GET)
  public String sayHello(@PathVariable("id") Integer id){
    return "id:"+id;
  }
}

@ResponseBody(返回類型為json)

作用: 該注解用于將Controller的方法返回的對象,通過適當(dāng)?shù)腍ttpMessageConverter轉(zhuǎn)換為指定格式后,寫入到Response對象的body數(shù)據(jù)區(qū)。

使用時機:返回的數(shù)據(jù)不是html標簽的頁面,而是其他某種格式的數(shù)據(jù)時(如json、xml等)使用;

以上是“springMVC中常用注解有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:springMVC中常用注解有哪些-創(chuàng)新互聯(lián)
標題路徑:http://aaarwkj.com/article14/ppoge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航動態(tài)網(wǎng)站、標簽優(yōu)化自適應(yīng)網(wǎng)站、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
国产三级在线视频不卡| 国产在线观看一区二区三区精品| 成人黄色动漫在线播放| 国产传媒在线视频观看| 邻居少妇扒开腿让我爽了一夜| 亚洲第一狼人天堂在线| 国产亚洲欧美精品在线观看| 91高清视频在线免费观看| 欧美另类精品一区二区| 中文字幕日韩精品在线看| 欧美精品在,欧美一区二区| 91国产自拍在线视频| 久久国产精品欧美熟妇| 日韩欧美黄色三级视频| 国产自拍在线视频精品| 亚洲av成人在线播放| 99热这里只有精品56| 精品国产美女诱惑久久久| 日韩丰满少妇在线观看| av在线播放网址网站| 免费一区二区不卡去日本| 亚洲精品熟女国产国产老熟女| 亚洲精品欧美无人区乱码| 成人黄色片久久久大全| 国产一级一片内射在线| 在线高清视频无卡不码| 成人黄色av大片在线观看| 亚洲欧美激情专区在线| 日韩熟女av中文字幕| 国产一区二区黄色在线| 亚洲欧美日韩精品麻豆| 久久精品性少妇一区二区三区| 中文字幕亚洲精品四区| 蜜桃福利视频一区二区| 日韩精品少妇一区二区在线看| 日韩专区欧美二区国产| 黄色国产一区二区三区| 国产欧美激情一区二区| 国产精品三级一区二区三区| 欧美香蕉视频播放二区| 亚洲精品精品一区二区|