首页 > 其他分享 >Spring IOC 容器组件注册常用注解

Spring IOC 容器组件注册常用注解

时间:2025-02-07 12:02:18浏览次数:6  
标签:name Spring Component public Bean 注解 IOC class

1、@Bean

@Bean用于定义一个Bean,它可以用在方法上,表示该方法返回的对象将会被注册为一个Bean。

@Bean默认情况下会使用方法名作为Bean的名称,也可以通过name、value属性指定Bean的名称。

@SpringBootApplication
public class SpringIocApplication {

    public static void main(String[] args) {
        //获取IOC容器
        ConfigurableApplicationContext ioc = SpringApplication.run(SpringIocApplication.class, args);
        //获取容器中所有的bean的名称
        String[] names = ioc.getBeanDefinitionNames();
        //遍历bean的名称
        for (String name : names) {
            System.out.println(name);
        }
    }
    @Bean
    public Dog getDog(){
        return new Dog("毛毛", "Black");
    }
}

class Dog{
    String name;
    String color;
    public Dog(String name, String color) {
        this.name = name;
        this.color = color;
    }
}

输出结果:

当@Bean用name或value属性指定名字时,注册到容器的中bean名称就为指定的名称

2、@Component

@Component是用在类上的注解,用于将一个类注册为一个Bean。在使用@Component时,可以通过value或者name属性指定Bean的名称。@Component的默认名称是将类名的首字母小写作为Bean的名称。

@Bean与@Component注解的区别

  • @Bean注解可以用在任何类上,包括第三方库中的类,而@Component注解只能用于自己定义的类。
  • @Bean注解通常被用于配置类中,用于配置Bean的创建和初始化过程,可以通过方法体内进行自定义操作。而@Component注解通常用于普通的业务类,表示这个类被Spring容器管理。

总的来说,@Bean注解更加灵活,可以在配置类中对Bean进行自定义操作,而@Component注解则更适合普通的业务类。

3、MVC分层注解

@Controller

用于将类注册为一个控制层的Bean。通常用于控制器类,用于处理请求和返回响应。

@Controller
public class UserController {
}

@Service

用于将类注册为一个服务层的Bean。通常用于服务类,用于实现业务逻辑。

@Service
public class UserServiceImpl implements UserService {
}

@Repository 

用于将类注册为一个持久化层的Bean。通常用于DAO类,用于访问数据库或其他持久化操作。

@Repository
public class UserDao {
}

@Repository、@Service和@Controller这三个注解底层都是基于@Component注解的。分层注解可以更好地划分组件的角色和用途,使代码更具可读性和可维护性。此外,Spring也可以根据这些注解提供特定的功能和处理。例如,持久化层的异常转换、事务管理等。

4、@Import

@Import注解可以在Spring的配置类中引入其他配置类或组件,从而实现组件的管理和组合,同时也提供了条件化引入的功能,它可以帮助开发者更好地组织和管理应用的配置和组件。

@Configuration
@Import({UserService.class, OrderService.class})
public class MainConfig {
    // ...
}

5、@Configuration 

@Configuration注解用于标识配置类和配置方法,同时将该配置类注册到IOC容器中。在配置类中,可以使用@Bean注解来定义Bean方法。这些方法用于创建和配置应用程序中的Bean实例。通过调用这些方法,Spring容器可以获取配置类中定义的Bean,并将它们纳入Spring容器的管理。

@Configuration
public class AppConfig {

    @Bean
    public UserService userService() {
        return new UserServiceImpl();
    }

    @Bean
    public OrderService orderService(UserService userService) {
        return new OrderServiceImpl(userService);
    }

}
 

标签:name,Spring,Component,public,Bean,注解,IOC,class
From: https://blog.csdn.net/weixin_68901096/article/details/145489083

相关文章