【Spring】Spring IOC容器 (注解实现)

概述

目的:使用注解的方式是为了简化XML的书写
准备:要使用注解先开启组件扫描

<!--在XML文件中添加如下配置
	对应包下的所有类将会被扫描 多个路径可以用 ","隔开
-->
<context:component-scan base-package="包路径"></context:component-scan>

//或者使用Java类创建 (完全注解开发)
@Configuration
@ComponentScan("com.wds") //包路径
public class SpringConfig {
}

//加载配置
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

Spring为Bean管理创建对象提供的注解

注意 :注解的value属性类比bean标签的ID属性 不写属性的话默认为首字母小写的类名
这几个注解的功能相同
使用时建议对应类的功能使用不同的注解

  1. @Component
  2. @Service
  3. @Controller
  4. @Repository

@Component :这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。Spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。

@Service :此注解是组件注解的特化。它不会对@Component 注解提供任何其他行为。您可以在服务层类中使用@Service 而不是@Component,因为它以更好的方式指定了意图。

@Controller :这将一个类标记为 SpringWeb MVC 控制器。标有它的Bean 会自动导入到 I
oC 容器中。

@Repository :这个注解是具有类似用途和功能的 @Component 注解的特化。它为 DAO 提供了额外的好处。它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。

Spring为Bean管理属性注入提供的注解

tips:在属性上添加属性注入的注解后会自动生成set方法 可以不写set方法

@Autowired

根据类型注入

@Qualifier (value=“bean_id”)

根据属性名注入 要和@Autowired一起使用( 单一类型无法确定单一对象时)

@Resouce 不建议使用

可以根据类型注入也可以根据属性名注入 (1 + 2 的结合) 但是这个注解并不是Spring提供的 并不推荐使用

@Value (“字符串”)

普通字符串注入

属性注入示例:

@Service
public class UserServiceImpl implements UserService {
//        @Autowired
//        @Qualifier
//    @Resource(type = UserDaoImpl.class)
    @Resource(name = "userDaoImpl")
    private UserDao dao;
    
    @Value("文本内容")
    private String text;

    @Override
    public void addUser(User user) {
        dao.add();
        System.out.println( "service add()...");
        System.out.println(user);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值