Spring注解开发
首先进入spring官方core链接并ctrl+f,
输入xmlns:context
复制约束到
bean.xml,并添加解析属性
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
//告知扫描此包下的名称空间约束
<context:component-scan base-package="com.ygg"></context:component-scan>
</beans>
当完成了以上这一步骤之后,
使用@Component
注解配置管理的资源
Service.java
@Component("accountService")
public class AccountServiceImpl implements IAccountService {
private IAccountDao accountDao;
public void setAccountDao(IAccountDao accountDao) {
this.accountDao = accountDao;
}
}
就能将把此类加入IOC容器中
@Component//也可以不加任何参数。默认值则为类名小写
@Controller @Service @Repository
他们三个注解都是针对一个的衍生注解,他们的作用及属性都是一模一样的。
他们只不过是提供了更加明确的语义化。
@Controller: 一般用于表现层的注解。
@Service: 一般用于业务层的注解。
@Repository: 一般用于持久层的注解。
细节:如果注解中有且只有一个属性要赋值时,且名称是 value, value 在赋值是可以不写。
依赖注入的几个注解
@Autowired
作用:
自动按照类型注入。当使用注解注入属性时,
set
方法可以省略。它只能注入其他 bean
类型。当有多个类型匹配时,
使用要注入的对象变量名称作为 bean
的 id
,在 spring
容器查找(包括其继承的接口类型),找到了也可以注入成功。找不到就报错
@Qualifier
作用:
在自动按照类型注入的基础之上,再按照 Bean 的 id
注入。它在给字段注入时不能独立使用,必须和@Autowire
一起使用;但是给方法参数注入时,可以独立使用。
属性:
value:指定 bean 的 id。
@Resource
(无需依赖@Autowired
)
作用:
直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。
属性:
name
:指定 bean 的 id。
@Value
作用:
注入基本数据类型和 String
类型数据的
属性:
value
:用于指定值