-
1.@Autowired和@Resource区别
都是用来自动装配的,都可以放在属性字段上 @Autowired通过byType的方式实现,而且要求这个对象存在 @Reesource默认通过byname的方式实现,如果找不到名字,则通过byType实现,如果两个都找不到的情况下,就报错 执行顺序不同:@Autowired通过byType的方式实现。@Resource默认通过byname的方式实现。
-
@Component
放在类上,说明这个类已经别spring管理了。
衍生注解,我们在web开发中,会按照MVC三层架构分层
dao [ @Repository ]
service [ @Service ]
controller [ @Controller ]
他们功能都一样,都是代表将某个类注册到spring容器中,只是标记不同而已
package com.kuang.pojo;
//等价于<bean id="User" class="com.kuang.pojo.User"/>
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
@Component//组件,说明这个类已经被spring管理了
public class User {
@Value("\"yeye\"")
//属性如果注入
public String name;
}
- 常用bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
">
<!--使用自动装配
注解是反射方式实现的
如果@Autowired 自动装配的环境比较复杂,自动装配无法通过哦一个注解完成的时候,我们可以使用
@Qualifier(value="xxx") 去配置@Autowired的使用,指定一个唯一的bean对象注入
@Autowired和@Resource的区别
都是自动装配,都可以防止属性字段上
@Autowired通过byname的方式实现,而且必须要求这个对象存在
@Resource默认通过byname的方式实现,如果找不到名字,则通过byType实现,如果两个都找不到的情况下,就报错!
-->
<context:annotation-config/>
<!--<bean id="people" class="com.kuang.pojo.People" autowire="byType">-->
<!--<property name="cat" ref="cat"></property>-->
<!--<property name="dog" ref="dog"></property>-->
<!--<property name="name" value="yeyeye"></property>-->
<!--</bean>-->
<!--
autowire="byName" byName 会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid
需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致
autowire="byType" byType 会在容器上下文中查找,和自己对象属性类型相同的bean!
bytype的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性类型一致
-->
<!--使用spring来创建对象,早spring中这些都称之为bean-->
<!--
bean = 对象 在spring这些都称为bean
类型 变量名 = new 类型();
Hello hello = new Hello();
id = 变量名
class = new 对象
property 相当于给对象中的属性设置一个值
-->
</beans>