spring(idea版)

spring

文章目录:

  • 1.spring简介
  • 2.IOC推导原型及本质
  • 3.第一个spring程序
  • 4.IOC创建对象的方式
  • 5.spring配置说明
  • 6.Dl依赖注入环境(依赖注入的方式)
  • 7.bean的作用域
  • 8.自动装配bean
  • 9.用注解实现自动装配
  • 10.spring使用注解开发
  • 11.使用java的方式配置spring
  • 12 代理模式
  • 13 使用spring实现AOP
  • 14.整合mybatis
  • 15.Spring声明式事务

1.spring简介

  • 简介
  • 优点
  • 组成

spring简介
在这里插入图片描述

在这里插入图片描述

之后要导入的一些maven依赖
在这里插入图片描述

spring的优点
在这里插入图片描述

在这里插入图片描述

spring组成
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.IOC推导原型及本质

  • 推导原型
  • 本质

推导原型

传统的分层模式架构
在这里插入图片描述
在业务层,主要调动dao层的接口实现,

测试类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
IOC本质

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

3.第一个spring程序

1.导入依赖


	<dependencies>
	        <dependency>
	            <groupId>org.springframework</groupId>
	            <artifactId>spring-webmvc</artifactId>
	            <version>5.2.0.RELEASE</version>
	        </dependency>
			
			<dependency>
		        <groupId>org.springframework</groupId>
		        <artifactId>spring-core</artifactId>
		        <version>5.2.1.RELEASE</version>
    		</dependency>
    		
		    <dependency>
		        <groupId>org.springframework</groupId>
		        <artifactId>spring-beans</artifactId>
		        <version>5.2.1.RELEASE</version>
		    </dependency>
		    
		    <dependency>
		        <groupId>org.springframework</groupId>
		        <artifactId>spring-context</artifactId>
		        <version>5.2.1.RELEASE</version>
		    </dependency>

    
</dependencies>

2.创建实体类

package com.wash.pojo;


public class Hello {
   
    private String str;

    public String getStr() {
   
        return str;
    }

    public void setStr(String str) {
   
        this.str = str;
    }

    @Override
    public String toString() {
   
        return "Hello{" +
                "str='" + str + '\'' +
                '}';
    }
}

3.注入bean对象
在resources文件夹下创建beans.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">
    <!--使用spring来创建对象,在spring这些都称为Bean
        类型 变量名=new 类型();
        Hello hello=new Hello();
        id=变量名
        class:new对象
        property:相当于给对象中的属性赋值

        ref:引用spring容器中创建好的对象
        value:具体的值,基本数据类型
    -->
    <bean id="hello" class="com.wash.pojo.Hello">
        <property name="str" value="spring"/>

    </bean>
</beans>

在这里插入图片描述
4.在测试类中获取bean对象

import com.wash.pojo.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Mytest {
   
    public static void main(String[] args) {
   
        //获取spring的上下文对象
        ApplicationContext context =new ClassPathXmlApplicationContext("beans.xml");
        //对象已经都在spring中管理了,若使用直接取出来就可以
       Hello hello= (Hello) context.getBean("hello");
        System.out.println(hello.toString());
    }
}


在这里插入图片描述

在这里插入图片描述

之后我们就可以通过这种方式来改变,之前在service层的接口实现方法创建对象,现在直接配置xml文件即可
在这里插入图片描述

4.IOC创建对象的方式

1.使用无参构造创建对象,默认
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.使用有参构造创建对象
在这里插入图片描述

  • 1.下标赋值

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

  • 2.通过类型赋值

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

  • 3.直接通过参数名来设置
    在这里插入图片描述
    在这里插入图片描述
    注意:在配置文件加载的时候,spring容器中管理的对象就已经初始化了。

5.spring配置说明

在这里插入图片描述

  • 别名:

在这里插入图片描述

在这里插入图片描述

  • bean

在这里插入图片描述

在这里插入图片描述

  • import

在这里插入图片描述

6.Dl依赖注入环境

依赖注入实际是Set注入

  • 依赖:bean对象的创建依赖于容器
  • 注入:bean对象中的所有属性,由容器来注入

第一种:普通值注入,value

 <bean id="hello" class="com.wash.pojo.Hello">
        <property name="str" value="spring"/>

    </bean>

依赖注入的方式:
1.构造器注入:

  • 无参构造
  • 有参构造:
    -下标
    -类型
    -参数名

2.Set方式注入[重点]在这里插入图片描述

  <bean id="a" class="com.wash.pojo.Hello1"/>
   <bean id="hello" class="com.wash.pojo.Hello">
       <!--第一种:普通值注入,value-->
       <property name="str" value="spring"/>
        <!--第二种:bean注入,ref-->
       <property name="adderess" ref="a"/>
       <!--第三种:数组注入,ref-->
       <property name="books">
           <array>
               <value>红楼梦</value>
               <value>西游记</value>
               <value>三国</value>
           </array>
       </property>
       <!--list-->
       <property name="hobbys">
           <list>
               <value>听歌</value>
               <value>敲代码</value>
           </list>
       </property>
       <!--Map-->
       <property name="card">
           <map>
               <entry key="身份证号" value="22134565432"/>
               <entry key="银行卡" value="23455643121"/>
           </map>
       </property>
       <property name="games">
           <set>
               <value>lol</value>
               <value>cf</value>
           </set>
       </property>
       <!--null-->
       <property name="wife">
           <null/>
       </property>
       <property name="info">
           <props>
               <prop key="学号">1706010122</prop>
               <prop key="性别"></prop>
               <prop key=
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值