Spring入门IOC/DI

什么是Spring?

它可以简化开发.整合其他的框架.

最直观的,可以减少代码之间的耦合,帮你创建对象

顺便解释一下Bean是什么,Bean就是被Spring管理的组件,或者说是类.

IOC(Inversion of Control)控制反转

IOC是一种思想

        由主动new产生对象转换为由==外部==提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。

Spring实现了这种思想

简而言之就是以前我们是自己创建对象来使用对象,现在由Spring来创建对象.然后我们通过接口来接收这个对象使用它的方法

目标:

        可以减少耦合度,

        可以使用IOC容器管理Bean

        使用对象时可以通过绑定依赖来得到已绑定Bean中所有的对象

DI 依赖注入( dependency injection ,DI)

        通过XML配置文件来告诉Spring,帮我创建实现类的对象,并且告诉Spring我这些在实现类中调用的对象或者简单类型(基本数据类型和String类型)对应着哪个类.

本例是用的setter注入,往下会讲两种注入方式

    //被管理的BookDao接口
public interface BookDao {
    public void save();
}

    //被管理的BookDao实现类
public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}
    
    //被管理的BookService接口
public interface BookService {
    public void save();
}
    //被管理的BookService的实现类
public class BookServiceImpl implements BookService {
    //Spring也顺便通过依赖创建了BookDao对象
    private BookDao bookDao ;

    //提供依赖对象对应的setter方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

XML文件配置

     <bean id="bookDao" class="全类名"/>

    <bean id="bookService" class="全类名">

        <!--
    name指的是BookServiceImpl中的成员变量位置的属性,实际上对应
    public void setBookDao(BookDao bookDao);
    方法set之后的字符串BookDao
    -->
        <!--    ref指的是xml配置文件中的bean的id名字-->
        <property name="bookDao" ref="bookDao"/>
    </bean>

Bean的实例化

介绍几种实例化的方法

无参构造方法 (重点且常用):

        上面用的就是无参构造方法(自动生成的).无参构造方法不存则会报错!知道即可

静态工厂:

       创建静态工厂之后

  <!--    还可以通过静态工厂获得对象-->
    <!--    了解................................-->
    <bean id="bookDaoImpl" class="工厂全类名" factory-method="工厂的方法"/>

 实例工厂:

        先创建一个工厂后,让Spring帮忙实例化

<!--使用实例工厂实例化bean-->
<bean id="userFactory" class="工厂全类名"/>

<bean id="userDao" factory-method="getUserDao" factory-bean="userFactory"/>

实现FactoryBean<T>接口:

//FactoryBean创建对象
public class UserDaoFactoryBean implements FactoryBean<UserDao> {
    //代替原始实例工厂中创建对象的方法
    public UserDao getObject() throws Exception {
        return new UserDaoImpl();
    }

    public Class<?> getObjectType() {
        return UserDao.class;
    }
}
//还有一个方式没有实现,此方法是标识是否单例模式,默认是单例
//对应的xml文件中的配置
<bean id="userDao" class="com.itheima.factory.UserDaoFactoryBean"/>

DI依赖注入的几种方式

setter注入

引用类型

参考上面的setter注入代码

        在成员变量位置提供对应的接口(目的是解耦合)而不是实现类(具体要用哪个实现类在xml中声明).

        在xml文件中用<property>标签声明依赖...关系是:A类需要使用B类的对象,则在A类对应的<Bean></Bean>标签中声明对应的依赖

若是简单类型(基本数据类型或者是String类)

则这样声明

Bean中成员变量位置

    private int connetionNum;
    private String database;
        假设声明了数据库最大连接数
        <property name="connetionNum" value="5"></property>
        假设声明了链接的数据库名
        <property name="database" value="redis"></property>

构造器注入

在要使用对象的实现类中提供对应的set方法...

    public void 构造方法(XXXDao xxx) {
        this.xxxDao= xxx;
    }

    对应的Bean中
    
    <constructor-arg name="对应参数名" ref="对应xml文件中其他Bean的ID" ></constructor-arg>

简单类型把 ref改为 value=" " 即可,""中的数据类型会自动转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring 是一个开源的 Java 开发框架,可以帮助开发者快速构建企业级应用程序。要快速入门 Spring,可以先学习 Spring 的核心概念,如 IoC、AOP、Bean 等,然后通过实践来深入理解。建议先学习 Spring 的官方文档和教程,同时可以参考一些优秀的 Spring 教程和书籍,如《Spring 实战》、《Spring 揭秘》等。另外,可以通过搭建一个简单的 Spring 项目来加深对 Spring 的理解和应用。 ### 回答2: Spring 是一款流行的开源框架,用于开发Java应用程序。要快速入门Spring,可以按照以下步骤进行: 1. 学习Spring的基础知识:首先,了解Spring框架的概念和优势,明确它可以解决哪些问题和应用场景。学习Spring的基本概念,如控制反转(IoC)和面向方面编程(AOP)。 2. 设置开发环境:安装Java Development Kit(JDK)和集成开发环境(IDE),如Eclipse或IntelliJ。然后,下载Spring框架并导入到开发环境中。 3. 学习Spring的核心模块:重点学习Spring的核心模块,如Spring Core和Spring Context。了解如何配置和管理Spring Bean和依赖注入。 4. 学习Spring的数据访问模块:继续学习Spring的数据访问模块,如Spring JDBC和Spring ORM。了解如何使用Spring简化数据库访问和操作对象关系映射(ORM)。 5. 学习Spring的Web开发模块:学习Spring的Web开发模块,如Spring MVC。了解如何使用Spring MVC构建Web应用程序,并处理请求和响应。 6. 初步实践:使用Spring框架来开发一些简单的应用程序或小项目。这有助于巩固所学的知识,并帮助你理解Spring在实际应用中的用法和特性。 7. 学习Spring周边技术:Spring生态系统非常丰富,还包括许多与之配套的技术和工具。学习与Spring相关的其他技术,如Spring Boot、Spring Security和Spring Cloud等。 8. 参考和实践:查阅Spring官方文档和教程,阅读相关书籍和博客,参加Spring培训或在线课程。通过实践项目和与其他开发者讨论,进一步提高你的Spring技能和应用水平。 通过以上步骤,你可以快速入门Spring,并开始使用它来开发高效、灵活且维护性强的Java应用程序。 ### 回答3: 要快速入门Spring,可以按照以下几个步骤进行: 1. 学习Spring的基本概念:理解Spring的核心概念,如控制反转(IoC)和依赖注入(DI),并了解Spring框架的特点和优势。 2. 配置开发环境:下载并安装Java开发工具(如Eclipse、IntelliJ IDEA等),并配置好Java开发环境。此外,还需要下载Spring框架的jar包,并将其添加到项目的类路径中。 3. 学习Spring的不同模块:Spring框架由多个模块组成,例如Spring Core、Spring MVC和Spring Boot等。在学习的过程中,依次了解每个模块的功能和用法,可以通过查看Spring的官方文档或者参考书籍来加深理解。 4. 实践编码:通过编写简单的示例程序来加深对Spring框架的理解和运用。可以通过教程或者示例代码来学习Spring的基本用法,包括配置文件的编写、Bean的创建和注入、AOP等。 5. 参与社区和讨论组:在Spring的社区中,有很多开发者都在探讨Spring的使用和问题解决。可以参与相关的讨论组或论坛,向其他开发者请教问题,分享自己的经验和学习心得。 6. 持续学习和实践:Spring是一个庞大而复杂的框架,学习它需要一定的时间和耐心。要不断地学习和实践,探索更深入和高级的功能和技术。可以阅读更多的书籍和文章、参加培训班或者学习小组,提升自己在Spring开发中的技术水平。 总之,快速入门Spring需要扎实的基础和坚持不懈的学习态度。通过理论学习和实践编码相结合,可以更好地掌握和应用这个强大的框架。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值