Spring 注解来实现IOC

一:使用注解来实现IoC(Inversion of Control,控制反转)

   使用注解来实现IoC就是通过在代码中添加特定的注解,告诉IoC容器如何创建和管理对象,并自动注入到需要的地方。借助于注解,开发者无需手动创建对象、处理对象之间的依赖关系,而是委托给IoC容器来完成这些工作。

几个常用的注解,用于实现Spring IoC:

  1. @Component:用于标识一个普通的Java类为一个组件(Bean),由Spring容器进行管理。
  2. @Repository:用于标识一个数据访问组件,通常与持久层相关。
  3. @Service:用于标识一个服务层组件,通常用于业务逻辑处理。
  4. @Controller:用于标识一个控制器组件,通常用于Web应用程序中的请求处理。

依赖注入的注解:

  1. @Autowired:自动装配依赖,可用于构造方法、属性、Setter方法上。
  2. @Qualifier:用于指定具体的Bean实例,配合@Autowired使用。
  3. @Value:用于注入简单类型的值或表达式。

二:一个示例,展示如何使用注解实现Spring IoC:

        1.为了启用注解驱动的IoC功能,还需要在applicationContext.xml配置文件中添加以下代码
  <!--注解扫描包  -->
    <context:component-scan base-package="com.cskt.mapper,com.cskt.service"/>

        上述配置指定了要扫描的基础包路径,Spring容器会扫描该路径下的组件,并进行相应的管理和依赖注入。

        2.@Repository标识持久层组件
package com.cskt.mapper;

import com.cskt.pojo.User;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository("userMapper")//这里的括号类似ID来标识
public class UserMapperImpl implements UserMapper{
    @Override
    public List<User> getUserAll() {
        System.out.println("执行了查询所有!!!");
        return null;
    }

}

        标识持久层组件:使用 @Repository 注解可以将一个类标识为持久层组件。这样,Spring 在进行组件扫描时会自动检测到该类,并将其实例化为一个 Bean,由 Spring 容器进行管理

        3.@Service标识服务层组件
package com.cskt.service;

import com.cskt.mapper.UserMapperImpl;
import com.cskt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("userService")//这里的括号类似ID来标识
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapperImpl userMapper;

    @Override
    public List<User> getUserAll() {
        userMapper.getUserAll();
        return null;
    }
  
}

        标记为@Service,表示它是一个服务层组件。这样,当Spring容器扫描到这个类时,会自动创建并管理该类的实例。

       自动装配依赖: @Autowired 注解可以将需要的依赖对象自动注入到目标字段、方法参数或构造函数中。当 Spring 容器初始化时,会检查被注解的字段、参数或构造函数参数的类型,然后在容器中查找匹配的 Bean,并将其自动装配进去。这样,我们无需手动编写代码来获取和注入依赖对象,提高了开发效率。

        4.编写test测试
 @Test
    public void testgetUsesrAll(){
        ApplicationContext apt=new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService =(UserService) apt.getBean("userService");
        userService.getUserAll();     
    }
        运行结果:

        在Spring框架中,常用的注解用于实现IoC的包括@Component@Repository@Service@Controller等。通过在类上添加这些注解,将其标识为组件,并由Spring容器进行管理。同时,可以使用@Autowired@Qualifier等注解来实现依赖注入,让容器自动为组件注入所需的依赖。

使用注解实现IoC的好处:

  1. 简化配置:不再需要手动编写大量的配置文件,而是通过注解直接标识组件和依赖关系,减少了繁琐的配置工作。
  2. 降低耦合:通过IoC容器管理组件之间的依赖关系,组件无需直接依赖具体的实现类,而是依赖于接口或抽象类,降低了组件之间的耦合度。
  3. 可维护性:由于依赖关系由容器控制,可以更容易地替换、添加或删除组件,提高了代码的可维护性和灵活性。
  4. 提高测试效率:使用注解实现IoC后,可以更方便地进行单元测试,因为可以轻松模拟和替换组件。

总之,使用注解实现IoC能够简化开发流程,提高代码质量和可维护性,是一种常用的编程方式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值