spring基础-day02

4 篇文章 0 订阅
1 ,创建对象的注解:

1: @Component注解:相当于

  • (1):位置:必须放在类上面
  • (2):属性:value: 给对象起一个别名,相当于bean的id属性 value有默认值,不写的情况下以类的名称作为对象的别名,例如 User,它的别名是 user
    @Controller: 创建对象加入容器。同@Component一样。一般用于表现层的注解。
    @Service: 创建对象加入容器。同@Component一样。一般用于业务层的注解。
    @Repository:创建对象加入容器。同@Component一样。 一般用于持久层的注解。
2:基于注解的 IOC 配置-注入数据:@Autowire, @Qualifier,@Resoure,@value
@Autowired修饰字段和方法

自动装配!!!! - - 到IOC容器去自动查询对象

  1. 作用: 注入数据。
  2. @Autowired如何注入?
    (1). 根据类型注入
    会根据注入的字段的类型,去容器找该类型对应的对象注入
    (2). 根据名称注入
    如果字段的类型,在容器中对应的对象有多个,会根据字段的名称去注入。
    @Autowired 用在字段(属性)上面
    3.前提:
    使用@Autowired的前提是:属性所在的类也必须在IOC容器中 ,例如在类上面添加@Component

4.位置:
使用的位置非常广,包括在类,构造方法,普通方法,字段,参数等
常用的位置: 字段 和 普通方法

5.注入的类型:
@Autowired必须注入的对象类型(不能是基本类型: int,double),且该对象是引用IOC容器的另一个对象 (相当于配置的ref属性)
6. 注入的方式
6.1 默认情况下,按照字段的类型进行注入 ( 如果IOC容器有多个类型,可能会报错:NoUniqueBeanDefinitionException: No qualifying bean of type ‘java.lang.String’ available: expected single matching bean but found 2: str,str2 )
6.2 在多个类型的情况下,不能是按照进行注入,按照字段的名称进行注入(字段的名称和bean的id要一致的!)

@Autowired用在方法的作用
1.1 执行该方法(该方法名称没有任何要求的)
1.2 @Autowired到IOC容器查询对象,注入给方法的参数
2. 给参数赋值按照什么方式?
2.1 按照类型注入(如果有多个对象,可能报错)
2.2 多个对象的情况下,按照参数的名称赋值
@Qualifier注解说明
  1. 如果要让@Autowired只根据指定的对象(别名)名称实现依赖注入,要配置@Qualifier注解
  2. @Qualifier 通常要配合@Autowired一起使用。(在纯注解开发中可以单独使用

@Qualifier 注解的使用
1.位置
和@Autowired一起使用,在@Autowired上面或下面
2.作用
限定了@Autowired只能按照名称来进行注入,该名称值的是@Qualifier指定的名称,例如: @Qualifier(value = “str”)
3.好处
在使用@Autowired的时候,在IOC容器找到多个类型对象的情况下,不想修改字段名称,
可以使用 @Qualifier(value = “str”)指定IOC容器对象的名称

@Resource注解说明

  1. @Resource注解同@Autowired,可以根据类型、名称注入
  2. @Resource注解本身不属于Spring的注解,属于JDK提供的注解
  3. 此注解不建议用,因为在jdk1.8以后版本不提供支持。

@Value注解说明

  1. 直接给简单类型的字段赋值(相当于property的value属性)
  2. 获取配置文件值。 (在纯注解开发时候使用)

1.注入的类型
只能是简单类型
2. 作用
2.1 直接给属性赋一个基本类型值
2.2 读取properties配置信息(非常有用)
1)建立jdbc.properties
2)在bean.xml 加载配置: <context:property-placeholder location=“classpath:jdbc.properties”></context:property-placeholder>
3)在类中读取配置的信息

对象范围与生命周期注解

XML配置与注解配置

###spring纯注解配置-----@Configuration@ComponentScan@Bean、@PropertySource、@Import
注解说明

@Configuration 用于指定当前类是一个 spring 配置类,当创建容器时会从该类上加载注解。 获取容器时需要使用AnnotationApplicationContext(有@Configuration 注解的类.class)。

@ComponentScan用于指定 spring 在初始化容器时要扫描的包。
作用和在 spring 的 xml 配置文件中的:<context:component-scan base-package=“com.itheima”/>是一样的。

@Bean 该注解只能写在方法上,表明使用此方法创建一个对象,并且放入 spring 容器

@PropertySource 用于加载.properties 配置文件

@Import用于导入其他配置类


此博客仅供参考!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值