SSM-Spring(IoC配置和DI)

Spring

今天给大家介绍以下几个内容

  1. Spring简介
  2. IoC简介
  3. IoC在Spring中的简单使用
  4. IoC配置
  5. DI(依赖注入)

Spring简介

  • 介绍Spring之前先说说什么是框架:源自于建筑学,隶属土木工程,后发展到软件工程领域。
    软件工程框架:就是经过验证的,具有一定功能的,半成品软件
    SSM-Spring(IoC配置和DI)_第1张图片
    SSM-Spring(IoC配置和DI)_第2张图片
  • 什么是Spring:
    SSM-Spring(IoC配置和DI)_第3张图片
    SSM-Spring(IoC配置和DI)_第4张图片

SSM-Spring(IoC配置和DI)_第5张图片

IoC简介

先了解一个在程序代码中比较重要的一个概念:
SSM-Spring(IoC配置和DI)_第6张图片

  • IoC(Inversion Of Control)控制反转,Spring反向控制应用程序所需要使用的外部资源
  • Spring控制的资源全部放置在Spring容器中,该容器称为IoC容器
    SSM-Spring(IoC配置和DI)_第7张图片

IoC在Spring中的简单使用

  1. 导入spring坐标(5.1.9.release)
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>5.1.9.RELEASEversion>
dependency>
  1. 编写业务层与表现层(模拟)接口与实现类
public interface UserService {
//业务方法
void save();
}
public class UserServiceImpl implements UserService{
//业务方法实现
public void save(){
System.out.println("user service running...");
}
}
  1. 建立spring配置文件

<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
https://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="userService" class="com.itheima.service.impl.UserServiceImpl"/>
beans>
  1. 配置所需资源(Service)为spring控制的资源
<bean id="userService" class="com.itheima.service.impl.UserServiceImpl"/>
  1. 表现层(App)通过spring获取资源(Service实例)
public static void main(String[] args) {
//2.加载配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//3.获取资源
UserService userService = (UserService) ctx.getBean("userService");
userService.save();
}

IoC配置

  • Bean
    SSM-Spring(IoC配置和DI)_第8张图片
  • bean属性scope
    SSM-Spring(IoC配置和DI)_第9张图片
  • bean生命周期
    SSM-Spring(IoC配置和DI)_第10张图片

DI(依赖注入)

DI(Dependency Injection)依赖注入,应用程序运行依赖的资源由Spring为其提供,资源进入应用
程序的方式称为注入

SSM-Spring(IoC配置和DI)_第11张图片

SSM-Spring(IoC配置和DI)_第12张图片

依赖注入的两种方式

  1. set注入
    SSM-Spring(IoC配置和DI)_第13张图片

  2. 构造器注入
    SSM-Spring(IoC配置和DI)_第14张图片

  3. 集合类型数据注入——list

<property name="myList">
<list>
<value>ysvalue>
<value>666value>
<ref bean="userService"/>
<bean class="com.itheima.service.ApplyService"/>
list>
property>
  1. 集合类型数据注入——props
<property name="myProps">
<props>
<prop key="username">rootprop>
<prop key="password">rootprop>
props>
property>
  1. 集合类型数据注入——array
<property name="myArray">
<array>
<value>ysvalue>
<value>666value>
<ref bean="userService"/>
<bean class="com.ys.service.ApplyService"/>
array>
property>
  1. 集合类型数据注入——set
<property name="mySet">
<set>
<value>ysvalue>
<value>666value>
<ref bean="userService"/>
<bean class="com.ys.service.ApplyService"/>
set>
property>
  1. 集合类型数据注入——map
<property name="myMap">
<map>
<entry key="name" value-ref="ys"/>
<entry key="fame" value-ref="666"/>
<entry key="userService">
<ref bean="userService">ref>
entry>
<entry key="applyService">
<bean class="applyService"/>
entry>
map>
property>
  • 使用p命名空间简化配置

SSM-Spring(IoC配置和DI)_第15张图片

  • SpEL
    SSM-Spring(IoC配置和DI)_第16张图片
    SSM-Spring(IoC配置和DI)_第17张图片
  • properties文件
    SSM-Spring(IoC配置和DI)_第18张图片

SSM-Spring(IoC配置和DI)_第19张图片

SSM-Spring(IoC配置和DI)_第20张图片

SSM-Spring(IoC配置和DI)_第21张图片

以上就是今天的全部内容了,如果有不恰当的地方,欢迎指正。

你可能感兴趣的:(spring,java,ioc)