美文网首页
spring注解

spring注解

作者: G_XM_38d3 | 来源:发表于2019-12-17 18:42 被阅读0次
    @Component("ID")

    等同于java注解@Named,用于类的注解,表明该类会作为组件类,并告知Spring要为这个类创建bean。Spring会根据类名为其指定一个ID。具体来讲,这个bean所给定的ID为将类名的第一个字母变为小写。获取通过参数来设置类的名字(ID)。

    @ComponentScan(basePackages={"system","video"})

    和@configuration一起使用,这个注解能够在Spring中启用组件扫描。,@ComponentScan默认会扫描与配置类相同的包。Spring将会扫描这个包以及这个包下的所有子包,查找带有@Component注解的类。并且会在Spring中自动为其创建一个bean。也可以通过指定特定的类。

    @ComponentScan(basePackageClasses={Player.class,Video.class})
    
    @Autowired(requierd=false)

    @Autowired按照byType自动注入。等同于java注解@Inject@Autowired注解不仅能够用在构造器上,还能用在属性的Setter方法和成员变量上。将required属性设置为false时,Spring会尝试执行自动装配,但是如果没有匹配的bean的话,Spring将会让这个bean处于未装配的状态。但是,把required属性设置为false时,你需要谨慎对待。如果在你的代码中没有进行null检查的话,这个处于未装配状态的属性有可能会出现NullPointerException。

    @Resource

    @Resource默认按照ByName自动注入,由J2EE提供。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。

    @Configuration

    表明这个类是一个配置类,该类应该包含在Spring应用上下文中如何创建bean的细节。

    @Bean
    @Configuration
    public class CdPlayerConfig{
        
        @Bean(name="sgt")
        public  CompactDisc sgtPeppers(){
            return new SgtPeppers();
        }
    }
    
    

    @Bean注解会告诉Spring这个方法将会返回一个对象,该对象要注册为Spring应用上下文中的bean。方法体中包含了最终产生bean实例的逻辑。默认情况下,bean的ID与带有@Bean注解的方法名是一样的.

    @Profile

    @Profile注解应用在了类级别上。它会告诉Spring这个配置类中的bean只有在dev profile激活时才会创建。如果dev profile没有激活的话,那么带有@Bean注解的方法都会被忽略掉。

    @Primary

    当spring装配匹配到多个类时,可以通过@Primary来表达最喜欢的方案。@Primary能够与@Component组合用在组件扫描的bean上,也可以与@Bean组合用在Java配置的bean声明中。

    @Qualifier("beanID")

    @Qualifier注解是使用限定符的主要方式。它可以与@Autowired@Inject协同使用,在注入的时候指定想要注入进去的是哪个bean。

    @Scope

    设置bean的作用域。

    <u>@DeclareParents</u>

    利用被称为引入的AOP概念,切面可以为Spring bean添加新方法。

    @Aspect
    @Component
    public class AspectConfig {
        //"+"表示person的所有子类;defaultImpl 表示默认需要添加的新的类
        @DeclareParents(value = "com.annotation.Person+", defaultImpl = FemaleAnimal.class)
        public Animal animal;
    }
    

    @DeclareParents注解由三部分组成:

    • value属性指定了哪种类型的bean要引入该接口。在本例中,也就是所有实现Person的类型。(标记符后面的加号表示是Person的所有子类型,而不是Person本身。)
    • defaultImpl属性指定了为引入功能提供实现的类。在这里,我们指定的是FemaleAnimal提供实现。
    • @DeclareParents注解所标注的静态属性指明了要引入了接口。在这里,我们所引入的是animal接口。

    SpringMVC

    @Controller

    通常是被使用服务于web 页面的。默认,你的controller方法返回的是一个string 串,是表示要展示哪个模板页面或者是要跳转到哪里去。它基于@Component注解。

    @RestController

    @ResponseBody@Controller的组合注解。返回的应该是一个对象。

    @RequestMapping

    RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

    RequestMapping注解有六个属性:

    • value:指定请求的实际地址,指定的地址可以是URI Template 模式
    • method:指定请求的method类型, GET、POST、PUT、DELETE等;
    • consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
    • produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
    • params:指定request中必须包含某些参数值是,才让该方法处理。
    • headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
    @requestParam

    主要用于在SpringMVC后台控制层获取参数,类似name=request.getParameter("name")

    有三个常用参数:

    • defaultValue:表示默认值
    • required:设置boolean值表示是否为必须
    • value:用来将前端jsp页面中的传入参数与SpringMVC控制层接收参数名做映射。如jsp中<input name="id">,接收参数名为bookId,那么对于这样的参数即可使用@requestParam(value=“id”)bookId进行映射既可成功接收。
    @PathVariable

    用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

    *@ModelAttribute:

    用于数据回显,springMvc默认回显pojo数据,以pojo的类名首字母小写作为key,存入request

    相关文章

      网友评论

          本文标题:spring注解

          本文链接:https://www.haomeiwen.com/subject/jwrenctx.html