spring(idea版)

本文详细介绍了Spring框架,包括IOC容器、依赖注入、bean的作用域、注解开发、AOP代理模式、MyBatis整合以及声明式事务管理。从基础概念到实际应用,全方位解析Spring的核心特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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="password">19990329</prop>
           </props>
       </property>
    </bean>

在这里插入图片描述

3.其他方式注入

  • p命名空间注入

在这里插入图片描述

在这里插入图片描述

  • c命名空间注入
    在这里插入图片描述
### 在 IntelliJ IDEA 社区中设置和使用 Spring 框架 #### 创建新的 Java 项目 为了在 IntelliJ IDEA 中使用 Spring 框架,需确保已安装了 IntelliJ IDEA 和 Java 开发环境。接着,在该 IDE 内创建一个新的 Java 项目[^1]。 #### 添加 Spring Boot Starter 依赖项 尽管社区不自带 Spring Initializr 支持,仍可通过访问在线的 Spring Initializr 来获取预配置好的 Maven 或 Gradle 构建文件模板,从而简化项目的初始化工作[^2]。下载生成的压缩包并导入到 IntelliJ IDEA 中作为现有项目处理。 对于那些偏好直接操作 pom.xml 文件的情况,则可以在其中加入如下所示的核心依赖声明: ```xml <dependencies> <!-- 其他依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 更多可能需要的依赖... --> </dependencies> ``` #### 安装必要的插件支持 考虑到某些功能上的局限性,建议考虑安装额外的支持插件比如 `Spring Assistant` ,这有助于增强对 Spring 应用程序结构的理解以及提高开发效率[^4]。 #### 编写 Spring 配置与组件代码 一旦基础架构准备就绪之后,就可以着手编写具体的业务逻辑和服务实现了。此时既可以采用 XML 方式的 Bean 定义也可以利用更为现代简洁的注解驱动模式来进行依赖注入和其他特性启用。例如下面这段简单的 RESTful Web Service 实现片段展示了如何标记一个普通的 POJO 类成为 Spring 管理下的 Bean 并暴露 HTTP 请求映射接口: ```java @RestController @RequestMapping("/api/hello") public class HelloController { @GetMapping("") public String sayHello() { return "Hello, World!"; } } ``` 最后一步就是按照常规流程编译构建整个工程,并借助于内置或是外部命令行工具启动应用实例对其进行初步的功能验证测试。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值