关于spring中注解的说明

目录

一,spring注解

spring注解的key 也就是id首字母小写

二,利用工厂模式创建对象

(一),业务说明

(二),创建工厂模式 


一,spring注解

spring注解的key 也就是id首字母小写

  1. @Service("userService")注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService",然后注入给Action。
  2. @Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
  3. @Component 将当前的类交给spring容器管理 对象的创建是由spring通过反射机制自动创建对象
  4. @ComponentScan(包扫描):扫描指定路径下的注解  当spring容器启动时 根据指定包路径扫描其子孙包   如果不扫描 即使有上面的@Component注解 你扫描不到依旧会报错
  5. @Bean 将自己方法的返回值交给Spring容器管理
  6. @Scope:@Scope("singleton")默认值是单例模式,@Scope("prototype")   多例模式,如果想多例转单例 可以把@Scope("prototype")删掉,只留@Bean;或者输入@Scope("singleton")
  7. @Lazy 添加表示为懒加载
  8. @PostConstruct 在对象创建之后立即调用
  9. @PreDestroy:对象消亡时调用
  10. @Autowired:说明:在对象中如果需要使用属性注入。一般使用@Autowired       功能:可以将Spring容器中的对象,自动注入到属性中        注入方式:(1)默认按照类型注入:如果注入的属性是接口,则自动注入实现类  (2)按照名称注入(key):一般不用        重要前提:如果需要依赖注入,则对象必须交给Spring容器管理   
  11. @Quealifier:不能单独使用 如果使用必须配合@Autowired 根据key注入
  12. @Aspect:标识该类是一个切面
  13. @EnableAspectJAutoProxy :启用的意思启用切面的注解  相当于让你的切面方法生效
  14. @Transaction:当标注在类上的时候:表示给该类所有的 public 方法添加上 @Transaction 注解当标注在接口上的时候:Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。像 CGLib 动态代理采用继承的方式将会导致 @Transactional 注解失效当标注在方法上的时候:事务的作用域就只在该方法上生效,并且如果类及方法上都配置 @Transaction 注解时,方法的注解会覆盖类上的注解
  15. @RequestBody: @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

二,利用工厂模式创建对象

(一),业务说明

  1. spring中管理的对象大部分可以通过new或者反射进行创建对象,有些对象处于特殊原因不能直接实例化 就需要考虑是否通过工厂模块实现

(二),创建工厂模式 

  1. ​
    package com.jt.factory;
    
    import org.springframework.beans.factory.FactoryBean;
    import org.springframework.stereotype.Component;
    
    import java.util.Calendar;
    
    @Component("calendar")
    public class CalenderFactory implements FactoryBean<Calendar> {
    
        @Override
        public Calendar getObject() throws Exception {
    
            return Calendar.getInstance();
        }
    
        @Override
        public Class<?> getObjectType() {
            return Calendar.class;
        }
    
    }
    
    ​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值