spring 的幾種注解


一:@Autowired(按類型注入)
1.1通過 @Autowired的使用來消除 set ,get方法。
@Autowired
private Dao dao;
這樣就可以刪除set ,get方法和spring中的相關配制了。
<bean id="service" class="com.Servcie">
<property name="dao" ref="dao">
</bean>
<bean id="dao" class="com.dao"/>

1.2通過@Autowired屬的Setter方法給父類中的屬性注入值。
@Autowired
public void setDataSource(DataSource ds){
super.setDataSource(ds);
}

1.3當不能確定 Spring 容器中一定擁有某個類的 Bean 時,可以在需要自動注入該類 Bean 的地方可以使用 @Autowired(required = false) ,這等於告訴 Spring:在找不到匹配 Bean 時    也不報錯。@Autowired(required = false)

二:@Resource(按名稱注入)
1.1
@Resource(name="dao")
private Dao dao;

@Repository("dao")
Public class Dao{}

三:@Controller    
1.1 EG: @Controller("com.LogAction") //標識控制器bean id

四:@RequestMapping
1.1EG: @RequestMapping("log/login.htm",
                        method="
RequestMethod.POST",
headers="Content-Type=application/json",
consumes={"application/json"},
produces={"application/json"})
參數有(value={"",""},method={"RequestMethod.GET",""},params={"submitFlag=create",""}...)
 
value:請求的url,params :請求的參數中含有該值;在@RequestMapping 中 params 的參數組合使用是 且的意思
headers:請求參數 Content-Type=application/json 表示客戶端發送的文件內容類型,從而服務器按這種類型來解析;
                Accept=application/xml 表示客戶端只接收該類型內容從而服務器發送該類型數據
headers="Content-Type=application/json" 對應--> consumes="application/json"
headers="Accept=application/json" 對應--> produces="application/json"
consumes:表示服務器只能消費的數據類型;produces:標示服務器只負責生產的數據

五:@Component = @Service or @Reponsitory
1.1 當組件描述不明確時可以統一用@Component


六:參數綁定注解

1、@RequestParam綁定單個請求參數值;
2、@PathVariable綁定URI模板變量值;
3、@CookieValue綁定Cookie數據值
4、@RequestHeader 綁定請求頭數據;
5、@ModelValue綁定參數到命令對象;
6、@SessionAttributes綁定命令對象到session;
7、@RequestBody綁定請求的內容區數據並能進行自動類型轉換等。
8、@RequestPart 綁定“multipart/data”數據,除了能綁定@RequestParam 能做到的請求參數外,還能綁定上傳的文件

 

@RequestParam (value="",required=false[默認true],defaultValue="zhang")
綁定單個參數  public void method(@RequestParam(value="username") String name){}  --> ...htm?username=zzd

        綁定多個參數  public void method(@RequestParam(value="role")  String[] roles){}  或者  
      public void method(@RequestParam(value="role" )  List<String> roles)
 {} -->...htm?role=admin&role=test

 

@RequestMapping(value="/users/{userId}/topics/{topicId}") 
EG:public String test(  @PathVariable(value="userId")  int  userId,  @PathVariable(value="topicId")  int topicId)
     
將url 中的{userId}、{topicId} 綁定到@PathVariable 標注的變量中

 

@CookieValue
public String test(@CookieValue(value="JSESSIONID", defaultValue="") String sessionId) 

 

@RequestHeader
public String test(  @RequestHeader("User-Agent") String userAgent,      @RequestHeader(value="Accept") String[] accepts)

 

六:

三:備注

<context:component-scan/> 掃描指定的包中的類上的注解,常用的注解有:

@Controller 聲明Action組件
@Service    聲明Service組件    @Service("myMovieLister") 
@Repository 聲明Dao組件
@Component   泛指組件, 當不好歸類時. 
@RequestMapping("/menu")  請求映射
@Resource  用於注入,( j2ee提供的 ) 默認按名稱裝配,@Resource(name="beanName") 
@Autowired 用於注入,(srping提供的) 默認按類型裝配 
@Transactional( rollbackFor={Exception.class}) 事務管理
@ResponseBody
@Scope("prototype")   設定bean的作用域

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM