IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Spring】(1) -> 正文阅读

[Java知识库]【Spring】(1)


Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架

依赖

spring web mvc的依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.18</version>
</dependency>

spring jdbc的依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.18</version>
</dependency>

控制反转(IOC)

在使用dao层操作数据库时,不直接new出dao层的对象来处理数据,而是加一层service层,service层放置一个接口用于动态注入dao层的对象,来使用户完成不同的dao层操作,这就又程序主动创造对象变为了被动接收对象,主动权从程序员的手中,变到了用户的手中。
==举个通俗的例子,==原本老师想抽查哪个组的作业,就得去让组长收作业,这样不仅浪费了老师做别的事(重要的事)的时间,而且一旦有了新的小组,还得老师去选新的组长,并且指导他收其他人的作业。而有了IOC的思想之后,老师安排一个班长,只要和班长交接完成,那么想要哪一组的作业告诉班长就行了,班长负责告诉相应的组长,这样不仅在收作业上节约了老师的时间,以后来了新的小组,也只需要班长交涉,不需要占用老师的时间了。

在Spring中的体现为,把对象放入容器,用的时候去取,不关心容器如何处理对象,如何实例化对象。

ApplicationContext.xml

<?xml version="1.0" encoding="UTF8"?>
<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">

    <!--在这里编写主体-->
</beans>

bean的加载和调用

加载

在ApplicationContext.xml里配置bean

<bean id="hello" class="com.zxt.pojo.Hello">
    <property name="str" value="Spring"/>
</bean>
<!--value代表基本数据类型,ref代表引用spring已经创建好的对象-->

通过对象的无参构造加载!有参构造的创建方法在下面。

调用

这是固定的格式:

//获取Spring的上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

取bean的方法:

类型 变量名 = (类型) 上下文对象.getBean(“bean的id”);

通过上下文对象的getBean()方法获取一个Object对象,再强转成它原来的类型,举个例子:

Hello hello = (Hello) context.getBean("hello");

有参构造的加载

实体类构造器从无参变为有参

/*
public User() {
    System.out.println("User的无参构造!");
}
 */

public User(String name) {
    this.name = name;
}
1.通过下标匹配参数

将有参构造的第index个参数,注入value的值

<bean id="User" class="com.zxt.pojo.User">
    <constructor-arg index="0" value="注入第0个参数"/>
    <!--<constructor-arg index="1" value="注入第1个参数"/>-->
</bean>
2.通过参数类型匹配参数(不建议使用)

类型需要写全路径

<bean id="User" class="com.zxt.pojo.User">
    <constructor-arg type="java.lang.String" value="注入类型为String的参数"/>
</bean>
3.通过参数名匹配参数

这是最好理解的方式,把value处的参数传入到参数列表中name的位置

<bean id="User" class="com.zxt.pojo.User">
    <constructor-arg name="name" value="注入参数名为name的参数"/>
</bean>

Spring配置

alias

别名,name是一个bean的id,alias是那个bean的新id。

<alias name="User" alias="user"/>
bean

唯一标识符就类似于变量名,全限定名就是包名+类名,别名可以有多个。

<bean id="唯一标识符" class="全限定名" name="别名1,别名2······">
</bean>
bean的scope

默认是 singleton 单例,创建的都是同一个对象。
在这里插入图片描述

prototype 每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()。

request 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于web的Spring WebApplicationContext环境。

session 同一个HTTP Session共享一个Bean,不同Session使用不同的Bean。该作用域仅适用于web的Spring WebApplicationContext环境。

import

一般用于团队开发使用,将多个配置文件导入、合并为一个。

<import resource="ApplicationContext1.xml"/>
<import resource="ApplicationContext2.xml"/>

这样 ApplicationContext1.xml 和 ApplicationContext1.xml 里面所有的bean就会被合并到调用他们的xml文件里了。
如果内容相同就会合并。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:04:09  更:2022-05-05 11:07:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:17:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码