Spring半注解半Xml

一、 @Component

1.Component

    标记了注解, 默认的名称是:简单类名,首字母小写
            UserDaoImpl -> userDaoImpl
            UserServiceImpl -> userServiceImpl
     Component可以使用value属性指定对象的名称,相当bean标签的id属性
Component注解有三个子注解
    (注意:Component注解和三个子注解作用一致)
    @Service: 业务层
    @Controller : 表现层
    @Repository: 持久层

Component 默认的名称是:简单类名,首字母小写
Component可以使用value属性指定对象的名称,相当bean标签的id属性
使用value属性指定对象
测试类中
测试

 <context:component-scan base-package="com.itheima">
        <!--include : 包含-->
        <!--filter: 过滤-->
       <!--<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" ></context:include-filter>-->
        <!--exclude: 排除-->
        <!--<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"></context:exclude-filter>-->
    </context:component-scan>

开启注入扫描, 指定扫描的包, 扫描 Component注解
base-package: 指定扫描的包, 扫描com.itheima 包及其子包
 扫描 Component注解
如果将数据源和注入分开 context 必须写在主中
需要改为context

2.Autowired: 自动装配

@Autowired: 自动装配
* 可以直接把容器中的对象注入到另外一个对象中
* 如果该接口有多个实现类, 需要指定对象的名称,如果不指定,会报错
*
* 如果没有指定名称,有多个实现类,根据属性名称在容器中查找
@Autowired: 自动装配

  • @Qualifier(“userDaoImpl2”): 可以指定对象在容器中的名称
    • 该注解必须结合Autowired进行使用
    • @Resource: 自动装配 --可以使用name属性指定对象在容器中的名称
    • @Autowired 和@Resource
    •  都是自动装配
      
    •  Autowired, 默认按照类型装配,如果类型有多个,则按照名称查找, 由spring提供
      
    •  @Resource:默认是按照名称装配,如果名称没有找到,则按照类型装配, 有Jdk提供
      

注解总结

a. Bean: 标记在方法上,作用:将方法返回值放到springIOC容器中,可以使用value属性指定对象的名称
该注解适合创建 引用(其他)类对象
与xml映射:
b. Value: 标记在属性上,作用:给简单类型的属性赋值
相当于xml的 value属性
c. 【重点】Component: 标记在类上,作用:创建该类的对象,放到springIOC容器中,可以使用value属性指定对象的名称
该注解适合创建自定义的类对象
子注解:@Service(用于业务层) @Repository(用于持久层), @Controller(用于表现层)的作用与@Component 一样

与xml映射: <bean id="" class="">

d. 【重点】Autowired: 标记在属性和set方法上, 可以没有set方法,作用:自动注入依赖的对象
Qualifier:标记在属性和set方法上, 作用:指定依赖对象的名称

e. Resource: 标记在属性和set方法上, 可以没有set方法,作用:自动注入依赖的对象
可以使用name属性指定依赖对象的名称
f. Autowired 和Resource对比
两个都是自动注入(自动装配)
Autowired:默认按照类型装配,如果类型有多个,按照指定的名称装配, 由spring提供
Resource: 默认按照指定的名称装配,如果没有找到名称,按照类型装配, 由jdk提供
g. @Import: 标记在配置类上,作用引入其他的配置文件(xml)
【重点】
h. @PropertySource :标记在类上,作用引入属性文件(properties)
【重点】xml 映射:<context:property-placeholder location=“classpath:db.properties”></context:property-placeholder>
i. Configuration:标记在类上,作用 代表该类为配置文件
j. ComponentScan:标记在类上,作用 扫描包,创建对象
【重点】<context:component-scan base-package=“com.itheima”></context:component-scan>
l. Scope: 指定对象的范围
m: 与生命周期相同的注解
@PostConstruct:对象初始化执行的方法
@PreDestory:对象销毁时执行的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值