Spring 学习—day01

Spring 学习

一、Spring体系架构

​ 1、底层核心容器

Bean

Core

Context

SpringEL表达式

​ 2、中间层技术

AOP

Aspects

​ 3、应用层技术

​ 数据访问与数据集成

​ Web集成

​ Web实现

​ 4、基于Test测试

二、IOC

在这里插入图片描述

1、Spring发展史

在这里插入图片描述

2、IOC简介

​ 1、IOC(Inversion Of Control)控制反转,Spring反向控制应用程序所需要使用的外部资源。

​ 2、Spring 控制的资源全部放在Spring容器中,该容器称为IOC容器

​ 3.由主动变被动

3、入门案例

1.加载Spring
在这里插入图片描述

2.创建资源
在这里插入图片描述在这里插入图片描述
3.配置资源
在这里插入图片描述
4.使用资源
在这里插入图片描述

4、IOC配置

1.name属性

​ 可以使用 【name】 属性进行对资源定义多个别名,中间用 【,】 号隔开

<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-->
    <!--可以使用 name 进行对资源定义多个别名,中间用 , 号隔开-->
    <bean id="userService" name="userService2,userService3" class="com.yaoyao.service.impl.UserServiceImpl"></bean>
</beans>

2.sope属性

在这里插入图片描述

​ 不设置值的时候,默认为【singleton】,在加载Spring IOC容器的时候就创建了 对象

​ 当 设置为【prototype】的时候,使用(或者获取Bean)的时候才会创建对象,而且用一次创建一次。

3.bean的生命周期

在这里插入图片描述

3.Bean对象的创建方式

在这里插入图片描述

4、DL

DL:依赖,应用程序运行依赖的资源由Spring为其提供,资源进入应用程序的方式称为注入。

DL和IOC的关系:同一件事站在不同的角度

5、依赖注入

1.set方法注入

java代码

​ ``

	public class UserServiceImpl implements UserService {
        private UserDao userDao;
        private String name;
        private int num;


        public void setName(String name) {
        	this.name = name;
    	}

        public void setNum(int num) {
            this.num = num;
        }

        public void setUserDao(UserDao userDao) {
            this.userDao = userDao;
        }

         public void save() {
            userDao.save();
            System.out.println("userService......running....." + name + "  " + num);
        }

	}

applicationContext.xml

	 <!--将要注入的资源为Bean--> 	
	<bean id="userDao" class="com.yaoyao.dao.impl.UserDaoImpl"></bean>	


	 <!--将要注入的引用类型的变量通过property属性进行注入,对应的name是要注入的变量名,使用ref属性声明要注入的的bean-->
	<bean id="userService" class="com.yaoyao.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
        <property name="name" value="lisi"></property>
        <property name="num" value="1235"></property>
    </bean>

2.构造方法注入
在这里插入图片描述在这里插入图片描述
Java代码:

    public class UserServiceImpl implements UserService {
        private UserDao userDao;
        private String name;
        private int num;


        public UserServiceImpl(UserDao userDao, String name, int num) {
            this.userDao = userDao;
            this.name = name;
            this.num = num;
        }
     }

applicationContext.xml

	<bean id="userService" class="com.yaoyao.service.impl.UserServiceImpl">
        <!--使用构造方法进行set注入,需要保障注入的属性和bean中定义的属性一致,
            一致指的的是 顺序一致,类型一致或使用index来解决
        -->
        <constructor-arg name="userDao" ref="userDao"/>
        <constructor-arg name="name" value="zhangsan"/>
        <constructor-arg name="num" value="456494"/>
    </bean>

报错:

说明 注入的属性类型不正确,或者不一致
在这里插入图片描述

6、外部preperties文件的导入

1.设置context的命名空间

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

2.编写properties配置文件

	username=yaoyao
	password=123456

3.加载配置文件

	<contesxt:property-placeholder location="data.properties"/>

4.设置值

	<!--配置bean-->
    <bean id="userDao" class="com.yaoyao.dao.impl.UserDaoImpl">
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>
    <bean id="bookDao" class="com.yaoyao.dao.impl.BookDaoImpl"></bean>

    <bean id="userService" class="com.yaoyao.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"/>
        <property name="bookDao" ref="bookDao"/>
    </bean>

5.完整的applicationContext配置

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

    <!--加载外部的配置文件-->
    <contesxt:property-placeholder location="classpath:*.properties"/>


    <!--配置bean-->
    <bean id="userDao" class="com.yaoyao.dao.impl.UserDaoImpl">
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>
    <bean id="bookDao" class="com.yaoyao.dao.impl.BookDaoImpl"></bean>

    <bean id="userService" class="com.yaoyao.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"/>
        <property name="bookDao" ref="bookDao"/>
    </bean>


	</beans>

7、Import的配置

在这里插入图片描述
在这里插入图片描述

代码

	<!--引入其他配置文件-->
    <import resource="applicationContext-Book.xml"/>
    <import resource="applicationContext-User.xml"/>

8、ApplicationContext的源码解析

在这里插入图片描述
​**BeanFactory:**getBean的时候才会创建

**​ApplicationContext:**采用立即加载的形式,随用随给

9、Spring引入第三方资源–Durid

在这里插入图片描述

10、综合案例整合MyBatis

```

8、ApplicationContext的源码解析

​ [外链图片转存中…(img-qVdo24iY-1606985516709)]

​ **BeanFactory:**getBean的时候才会创建

​ **ApplicationContext:**采用立即加载的形式,随用随给

9、Spring引入第三方资源–Durid

在这里插入图片描述

10、综合案例整合MyBatis

​ 代码:https://gitee.com/xue_zhongyao/spring_study.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值