Spring注解开发

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 类型。当有多个类型匹配时,
使用要注入的对象变量名称作为 beanid,在 spring 容器查找(包括其继承的接口类型),找到了也可以注入成功。找不到就报错

@Qualifier
作用:
在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和@Autowire 一起使用;但是给方法参数注入时,可以独立使用。
属性:
value:指定 bean 的 id。

@Resource(无需依赖@Autowired)
作用:
直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。
属性:
name:指定 bean 的 id。

@Value
作用:
注入基本数据类型和 String 类型数据的
属性:
value:用于指定值

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容