• 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的作用域

  • 相关阅读:
    一百多套开发视频教程的下载地址
    魅族MX3问题集锦
    Entity Framework 5问题集锦
    【PHP Manager for IIS】让IIS支持PHP
    MySQL安装
    phpMyAdmin安装
    犯了一个愚蠢的序列化错误
    最佳策略
    .net非托管资源
    .net内存何时回收?
  • 原文地址:https://www.cnblogs.com/leonkobe/p/3530872.html
Copyright © 2020-2023  润新知