黑马程序员SSM—Spring学习笔记(1)

目录

一、Spring核心概念

1、IoC(Inversion of Control)控制反转

2、Bean

3、DI(Dependency Injection)依赖注入

二、IoC入门案例

1、思路分析

2、入门案例代码实现

 三、DI入门案例

1、思路分析

2、入门案例代码实现

一、Spring核心概念

1、IoC(Inversion of Control)控制反转

使用对象时,由主动new产生的对象转换为由外部提供对象,此过程中对象的创建控制权由程序转移到外部这种思想称为控制反转。Spring中提供了一个容器,称为IoC容器,充当IoC思想中的“外部”。

2、Bean

IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean

3、DI(Dependency Injection)依赖注入

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

如业务层需要依赖数据层,service就要和dao建立依赖关系。

二、IoC入门案例

1、思路分析

(1)Spring管什么? 

管理项目中所使用到的类对象,比如(Service和Dao)。

(2)如何将被管理的对象告知IoC容器?

使用配置文件。

(3)被管理的对象交给IoC容器,如何获取到IoC容器?

Spring框架提供相应的接口。

(4)IoC容器得到后,如何从容器中获取bean?

调用Spring框架提供对应接口中的方法。

(5)使用Spring导入哪些坐标?

用哪些东西,就需要在pom.xml添加对应的依赖

2、入门案例代码实现

(1)创建Maven项目

(2)添加Spring的依赖jar包

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

(3) 添加案例中需要的类

//数据层接口
package com.itheima.dao;

public interface BookDao {
    public void save();
}

//数据层实现类

package com.itheima.service;

public interface BookService {
    public void save();
}

//业务层接口
package com.itheima.service;

public interface BookService {
    public void save();
}

//业务层实现类
package com.itheima.service.impl;

import com.itheima.dao.BookDao;
import com.itheima.dao.impl.BookDaoImpl;
import com.itheima.service.BookService;

public class BookServiceImpl implements BookService {
    private BookDao bookDao = new BookDaoImpl();
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

(4)添加Spring配置文件:applicationContext.xml

(5)在配置文件中完成bean的配置

(6)在itheima包下建一个类App用来运行程序

(7)获取IoC容器并从容器中获取对象进行方法调用 

package com.itheima;

import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        //获取IoC容器
        ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取Bean
        BookDao bookDao =(BookDao) ctx.getBean("bookDao");
        BookService bookService = (BookService) ctx.getBean("bookService");
        //调用save方法
        bookDao.save();
        bookService.save();
    }
}

(8)运行程序

测试结果为:

 三、DI入门案例

1、思路分析

(1)要想实现依赖注入,须必要基于IoC管理Bean,所以DI的入门案例要依赖于前面IoC的入门案例

(2)Service中使用new形式创建的Dao对象是否保留?

需要删除掉,最终要使用IoC容器中的bean对象

(3)Service中需要的Dao对象如何进入到Service中?

在Service中提供方法,让Spring的IoC容器可以通过该方法传入bean对象

(4)Service与Dao间的关系如何描述?

 使用配置文件

2、入门案例代码实现

(1)去除BookServiceImpl类中使用new的方式创建的dao对象

public class BookServiceImpl implements BookService {
    //删除业务层中使用new的方式创建的dao对象
    private BookDao bookDao;

    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

(2)在BookServiceImpl类中,为BookDao提供setter方法

public class BookServiceImpl implements BookService {
//删除业务层中使用new的方式创建的dao对象
    private BookDao bookDao;
    
//    为BookDao提供setter方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

(3)在配置文件中添加依赖注入的配置

(4)测试BookService的save方法 

结果为:

  •  注意:配置中的两个bookDao的含义是不一样的

(1)name的bookDao是现在的属性的名称,作用是让Spring的IoC容器在获取到名称后,将首字母大写,前面加set找对应的setBookDao()方法进行对象注入
(2)ref的bookDao是当前容器中对应Bean的名称,作用是让Spring能在IoC容器中找到id为bookDao的Bean对象给bookService进行注入

  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴能回答你关于黑马程序员SSM框架笔记的问题!SSM框架是指Spring + SpringMVC + MyBatis的组合,它们分别是Java开发中常用的三个主流框架。下面是一些关于SSM框架的基本笔记: 1. Spring框架:Spring是一个轻量级的JavaEE开发框架,它提供了很多功能,包括依赖注入、面向切面编程、事务管理等。使用Spring可以简化开发过程,提高代码的可维护性和可测试性。 2. SpringMVC框架:SpringMVC是Spring框架的一部分,它是一个基于MVC(Model-View-Controller)模式的Web框架。SpringMVC提供了很多特性,如请求映射、数据绑定、视图解析等,使得开发Web应用更加简单和灵活。 3. MyBatis框架:MyBatis是一个持久层框架,它提供了对数据库的访问和操作。MyBatis使用简单的XML或注解来配置SQL语句,并提供了很多数据库操作的方法,使得开发数据访问层更加方便。 4. SSM整合配置:在使用SSM框架时,需要将SpringSpringMVC和MyBatis进行整合。一般来说,可以通过Spring的配置文件将它们整合在一起,配置数据源、事务管理、扫描包等。 5. 常用注解:在SSM框架中,有很多常用的注解可以使用。例如,@Controller用于标识一个控制器类,@RequestMapping用于映射请求路径和处理方法等。 以上是一些关于黑马程序员SSM框架的基本笔记,希望能对你有所帮助!如果你有任何其他问题,欢迎继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值