Spring 入门之 IOC与 DI

IOC(Inversion of Control)控制反转

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


案例演示:
在这里插入图片描述

  1. 导入maven 依赖
<dependency>       
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.18</version>
</dependency>
  1. 创建book类
package com.daidai.domain;

public class Book {
    private Integer id;
    private String title;
    private String author;

    public Book() {
    }

    public Book(Integer id, String title, String author) {
        this.id = id;
        this.title = title;
        this.author = author;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public void addBook(){
        System.out.println("addBook...");
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", author='" + author + '\'' +
                '}';
    }
}
  1. 创建 Spring 配置文件 ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="book" class="com.daidai.domain.Book"/>

</beans>
  1. 创建book对象,由ioc容器创建
package com.daidai.app;

import com.daidai.domain.Book;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App1 {
    public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");

        Book book = context.getBean("book", Book.class);

        book.addBook();

    }
}

DI(Dependency Injection)依赖注入

在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入

业务层要用数据层的类对象,以前是自己new的,现在自己不new了,靠别人[外部其实指的就是IOC容器]来给注入进来。这种思想就是依赖注入。


案例演示:

在这里插入图片描述

  1. 创建BookDao, BookService接口及其实现类。
package com.daidai;

public interface BookDao {
    void save();
}
package com.daidai;

public interface BookService {
    void startService();
}
package com.daidai.impl;

import com.daidai.BookDao;

public class BookDaoImpl implements BookDao {
    @Override
    public void save() {
        System.out.println("bookdao...");
    }
}
package com.daidai.impl;

import com.daidai.BookDao;
import com.daidai.BookService;

public class BookServiceImpl implements BookService {

    BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    @Override
    public void startService() {
        System.out.println("bookservice...");
        bookDao.save();
    }
}
  1. 创建ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="bookDao" class="com.daidai.impl.BookDaoImpl"/>
    <bean id="bookService" class="com.daidai.impl.BookServiceImpl">
        <property name="bookDao" ref="bookDao"/>
    </bean>
</beans>
  1. 创建测试
package com.daidai.app;

import com.daidai.impl.BookServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App1 {
    public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        BookServiceImpl bookService = context.getBean("bookService", BookServiceImpl.class);
        bookService.startService();
    }
}


管理第三方 bean

    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="username" value="root"/>
        <property name="password" value="000000"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test"/>
    </bean>
package com.daidai.apps;

import com.alibaba.druid.pool.DruidDataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App2 {
    //管理第三方bean
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContent.xml");
        DruidDataSource dataSourceDruid = context.getBean("druidDataSource", DruidDataSource.class);

        System.out.println(c3p0DataSource);
    }
}
  • 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、付费专栏及课程。

余额充值