Spring注解开发

使用注解

一、@Autowired @Qualifier @Resource使用步骤:
  1. 在spring配置文件中引入context约束
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
  1. 开启属性注解支持!
<context:annotation-config/>
二、@Component @value @Controller @Service @Repository使用步骤:
  1. 引入aop的包
  2. 在spring配置文件中引入context约数
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
  1. 指定注解扫描包
<context:component-scan base-packag="包名"/>

Spring用于属性注入的注解

  1. @Autowired

@Autowired是按类型自动转配的,不支持id匹配。
注解中有required属性,默认为true。当属性值为true时对象必须存在,不能为null。
当bean对象中出现不同的id对应同一个类的时候使用该注解会出错。
需要导入spring-aop的包!

public class User{
	//要想可以通过@Autowired注解自动导入,则一定要将Cat这个类交给Spring管理。
	@Autowired(required=true/false)
	private Cat cat;
}
<bean id="cat" class="com.cn.Cat"/>
  1. @Qualifier

@Autowired是根据类型自动装配的,加上@Qualifier则可以根据byName的方式自动装配
@Qualifier不能单独使用

<bean id="cat1" class="com.cn.Cat"/>
<bean id="cat2" class="com.cn.Cat"/>

此时如果只使用@Autowired注解会出现错误,需要@Qualifier注解与@Autowired一同使用

public class User{
	@Autowired
	@Qualifier(value = "cat1")
	private Cat cat;
}
  1. @Resource

@Resource如有指定的name属性,先按照该属性进行byName方式查找装配;
其次再进行默认的byName方式进行装配;
如果上述都不成功,则按byType的方式进行自动装配。
都不成功则报异常。

实体类:

public class User{
	@Resource(name="cat2")
	private Cat cat;
}

配置文件:

<bean id="cat1" class="com.cn.Cat"/>
<bean id="cat2" class="com.cn.Cat"/>

测试可以成功
配置文件2:删除cat2

<bean id="cat1" class="com.cn.Cat"/>

实体类上只保留注解

public class User{
	@Resource
	private Cat cat;
}

测试可以成功
结论:先进行byName查找,失败;再进行byType查找,成功。

  1. @Value(“值")
    可以在set方法上注入,也可以在属性上注入。
public class User{
	//相当于配置文件中的<property name=”name“ value=”cc“/>
	@Value("cc")
	public String name;
}

Spring用于Bean实现的注解

@Component
使用该注解就相当于将这个类交给Spring管理装配

//相当于配置文件中<bean id="user" class="当前注释类">
@Component("user")
public class User{
	public String name = "cc";
}

@Component 三个衍生注解(和该注解是同一个作用)
@Controller:web层
@Service:service层
@Repository:dao层

其他常用注解

@Configuration
代表这是一个配置类
@Import(类名.class)
导入合并其他配置类,类似于配置文件中的include标签

@Configuration
@Import(MyConfig1.class)
public class MyConfig{
	@Bean
	public Cat cat(){
		return new Cat();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值