Spring依赖注入方式详解(3种常用注入方式)

Spring依赖注入方式详解(3种常用注入方式)-mikechen

Spring注入方式主要有三种方式:构造方法注入,setter注入,基于注解的注入,下面我分别详解@mikechen

属性注入

属性注入是大家最为常见也是使用最多的一种注入方式了,代码如下:

  1. @Service
  2. public class UserServiceImpl implements UserService {
  3.     @Autowired
  4.     private UserMapper userMapper;
  5.  
  6.  
  7.     //...
  8. }

这里是使用 @Autowired 注解注入,另外也有 @Resource 以及 @Inject 等注解,都可以实现注入。

 

Set注入

Set注入:这种注入方式通过set方法完成注入,所以在类中必须要给属性设定set方法。

如下所示:

  1. @Service
  2. public class UserServiceImpl implements UserService {
  3.     private UserMapper userMapper;
  4.     @Autowired
  5.     public void setUserMapper(UserMapper userMapper) {
  6.         this.userMapper = userMapper;
  7.     }
  8. }

如果没有对应的方法,就会报错,Set注入都是通过Java反射机制实现的。

 

构造器注入

构造注入:这种注入方式是通过构造方法来实现,类中必须提供构造方法,属性的set方法不需要。

如下所示:

  1. @Service
  2. public class UserServiceImpl implements UserService {
  3.     private final UserMapper userMapper;
  4.     
  5. @Autowired
  6.     public UserServiceImpl(UserMapper userMapper) {
  7.         this.userMapper = userMapper;
  8.     }
  9. }

构造器注入是官方推荐的方式,构造方法注入也是通过Java反射机制实现的。

 

评论交流
    说说你的看法
欢迎您,新朋友,感谢参与互动!