spring入门之Spring 常用的三种注入方式

Spring 常用的三种注入方式

Spring 通过 DI(依赖注入)实现 IOC(控制反转),常用的注入方式主要有三种:构造方法注入,set 方法注入,基于注解的注入。

一、通过构造方法注入

先简单了解一下测试项目的结构,用 maven 构建的,四个包:

entity:存储实体,里面只有一个 User 类

dao:数据访问,一个接口,两个实现类

service:服务层,一个接口,一个实现类,实现类依赖于 IUserDao

test:测试包

在 spring 的配置文件中注册 UserService,将 UserDaoJdbc 通过 constructor-arg 标签注入到 UserService 的某个有参数的构造方法

<!-- 注册 userService --> 
<bean id="userService" class="com.lyu.spring.service.impl.UserService"> <constructor-arg ref="userDaoJdbc"></constructor-arg> 
</bean>
 <!-- 注册 jdbc 实现的 dao -->
  <bean id="userDaoJdbc" class="com.lyu.spring.dao.impl.UserDaoJdbc"></bean> 

如果只有一个有参数的构造方法并且参数类型与注入的 bean 的类型匹配,那就会注入到该构造方法中。

public class UserService implements IUserService {
   
 private IUserDao userDao; public UserService(IUserDao userDao) {
    		     this.userDao = userDao;
  } public void loginUser() {
   
   userDao.loginUser();
    } 
    } 
    @Test
     public void testDI() {
    
  ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取 bean 对象 UserService userService = ac.getBean(UserService.class, "userService"); // 模拟用户登录 userService.loginUser(); } 
测试打印结果:jdbc-登录成功

注:模拟用户登录的 loginUser 方法其实只是打印了一条输出语句,jdbc 实现的类输出的是:jdbc-登录成功,mybatis 实现的类输出的是:mybatis-登录成功。

**问题一:**如果有多个有参数的构造方法并且每个构造方法的参数列表里面都有要注入的属性,那 userDaoJdbc 会注入到哪里呢?

public class UserService implements IUserService {
    
private IUserDao userDao; private User user;
 public UserService(IUserDao userDao) {
    
 System.out.println("这是有一个参数的构造方法"); 
 this.userDao = userDao; 
 }
  public UserService(
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring是一个开源的Java开发框架,它提供了许多功能和工具,可以帮助开发者更加方便和快速地构建应用程序。 要想从入门到精通Spring,首先需要了解和掌握Spring的核心概念和基本原理。了解Spring MVC等Spring框架的基本工作原理,熟悉Spring注入(DI)和切面编程(AOP)等重要特性,这是Spring的基石。 其次,学习和掌握Spring框架的各个模块和组件。Spring框架提供了众多的模块,如Spring Boot、Spring Data、Spring Security等,这些模块都有自己的特点和应用场景。了解每个模块的作用和使用方法,能够根据具体需求灵活应用。 进一步,给自己找一个实际的项目来练手。通过实际项目的开发,可以更好地理解Spring的各项功能和特性。在实际项目中,可以使用Spring的依赖注入、AOP、事务管理等特性,提高代码的可维护性和灵活性,加深对Spring框架的理解和掌握。 同时,了解Spring的最新动态和更新。Spring框架在不断的发展和更新,新的版本可能会有一些新的功能和改进,了解并使用新的功能可以提高开发效率和代码质量。 最后,参加相关培训或考取相关认证。Spring的知识非常广泛和庞大,通过参加培训或考取相关认证可以系统地学习和掌握Spring框架的各个方面,提升自己的技术能力和职业竞争力。 总之,要想从入门到精通Spring,需要不断地学习和实践。通过理论和实践相结合,不断提升自己的能力和对Spring的理解,最终可以成为Spring的专家。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值