spring中的常用注解

注解:

  • lombok注解 @Data:为实体类构造,get/set方法等

    @NoArgsConstructor : 为实体类提供无参构造

    @AllArgsConstructor : 为实体类提供全参构造

    @Builder : 链式编程使用

    Address.AddressBuilder city = Address.builder().city("合肥");
    System.out.println(city);
    //注意: 使用Builder注解时 , 只提供有参构造 无参构造不提供 ,  使用DI依赖注入时需要提供无参构造
  • spring注解

  1. @Component(任何层) :创建Bean对象并存入IOC容器

    由@Component衍生而来的三个注解: @Controller:用于表现层 @Service:用于业务层 @Repository:用于持久层 对应的层一般选择对应衍生的注解,不属于这三层的,选择使用@Component

  2. @Bean: 声明在方法上,用于将方法的返回值对象放入容器

        此注解可指定Bean对象的id  --  @Bean("*")
  3. @Configuration: 此注解标注的类,会被Spring认为是配置类。Spring启动时会自动扫描并加载所有配置类,然后将配置类中bean放入容器

  4. @ComponentScan: 组件扫描 (扫描spring的相关注解)

    @ComponentScan("com.ithema")   --   在指定包下扫描
  5. @Import: 在一个配置类中导入其它配置类的内容

    @import({jdbc.class})
  6. @PropertySource: 用于引入其它的properties配置文件 , 加载外部资源

    此注解可引入多个配置文件 , 用逗号隔开即可
    其ignoreResourceNotFound = true  表示文件不存在不会报错 , 允许文件不存在
  7. @Value: 简单属性的依赖注入 , 可解析SPEL表达式

  8. @Autowired: 对象属性的依赖注入

    自动装配对象 按照类型进行匹配(类似getBean(Class<?> class))
    类型相同时 会根据变量名 在IOC 容器中查找与其一致的id
    如果都找不到会报错 需使用Qualifier 注解指定查找bean的名称
  9. @Qualifier: 要和@Autowired联合使用,代表在按照类型匹配的基础上,再按照名称匹配。

  10. @Resource 按照属性名称依赖注入 名称不存在再按照类型查找

  11. @Primary : 当接口具有多个实现类时 ,使用此注解可提高对应实现类的获取优先级, 注:此注解超过一个会报错

  12. @Scope : 设置Spring对象的作用域

  13. @PostConstruct @PreDestroy : 用于设置Spring创建对象在对象创建之后和销毁之前要执行的方法

  14. @RunWith(SpringJUnit4ClassRunner.class) : spring集成junit注解

    @ContextConfiguration(classes = SpringConfig.class) 指明spring核心容器

  15. @Aspect:声明当前bean对象为切面

    @Pointcut:声明切入点表达式
           @Pointcut("execution(* com.itheima.dao.*.*(..))")
           private void pid(){};    
  16. 通知类型注解

    @Before
    @AfterReturning
    @AfterThrowing
    @After
    @Around
  17. @EnableAspectJAutoProxy:使用于核心配置类上,开启AOP注解的支持 属性proxyTargetClass:用于更改aop底层代理实现

  18. @EnableTransactionManagement : 开始事务注解支持

  19. @Transactional 此注解可以标在类上,也可以表在方法上,表示当前类中的方法具有事务管理功能。

    可设置其隔离级别 传播行为 是否只读 超时时间等 可以写在类和方法上

  • springMVC注解

  1. @RequestParam: 此注解用于controller层 接收参数上 当封装参数名称与前端传来的key或name属性值不一致时, 用此注解绑定 , 可指定默认值 以及是否必须要携带此参数

test(@RequsetParam(value="habbies",required=false,defaultValue="aa") String happy);
    value 为前端传来的key或name属性名
    required : 表示是否必须
    defaultValue : 当没有该参数时 ,取其默认值
  1. @RequestBody: 用在方法参数上可以将前端传递的json字符串解析成对象类型 此注解只支持post请求

  2. @ResponeBody: 主要将对象解析成json字符串 ,阻止页面跳转

    方法返回值会通过IO流方式写入浏览器。将controller方法返回的对象通过适当的转换器转换为指定格式后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,效果等同于通过response对象输出指定格式的数据。 
    异步获取 json 数据,加上 @ResponseBody 后,会直接返回json 数据。
  1. @RequestMapping: 此注解用于controller层 (方法/类上) 表示跳转路径(url)

  2. @RestController : 等同于@controller +@ResponeBody

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值