首页 > 其他分享 >Spring学习第一天

Spring学习第一天

时间:2023-04-06 17:02:10浏览次数:44  
标签:www 第一天 对象 Spring 学习 创建 org schema


学习Spring第一天


Spring是什么

 .spring是一个开源框架,为了解决企业应用的复杂性而创建的,在现在不止以用于企业在一些个人网站上使用了,

 .是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

    -  从大小与开销两方面而言Spring都是轻量级的

   - 通过控制反转(IoC)的技术达到松耦合的目的

 

    - 包含并管理应用对象的配置和生命周期,这个意义上是一种容器

    - 将简单的组件配置,组合成为复杂的应用,这个意义上是框架

使用Spring的目的是一下三种

。在Spring上开发应用简单

       。在Spring上开发应用方便

。在Spring上开发应用快捷


Spring里面的对象其实多是Bean类

 

Spring的作用

。容器

。提供了对多种技术的支持

 --JMS

 --MQ支持

 --UnitTest

 -。。。等等..

。AOP(事务管理,日志等)

。提供了众多方便应用的辅助类(JDBC Template等)

。对主流应用框架(Hibernate等)提供了良好的支持


适用范围

。构建企业应用(SpringMVC+Spring+Hibernate/Mybatis)

。单独适用Bean容器(Bean管理)

。单独使用AOP进行切面处理

。其他的Spring功能 ,如:对消息的支持等

。在互联网中的应用。。。


什么是IOC

 。IOC:控制反转,控制权的转移,应用程序本身不负者依赖对象的创建和维护,而是有外部容器

负者创建和维护

 。DI(依赖注入)是其一种实现方式

 。目的:创建对象并且组装对象之间的关系


解释: 比如有一个类里面有一个方法(不是静态的方法),调用类里面的方法,要创建类的对象,使用对象的调用方法,创建类的对象

 使用对象调用方法,创建类对象的过程,需要 new 出来对象 有了Spring的话 吧对象的创建不是通过new的方式实现,而是

 交给Spring配置创建类对象

IOC操作

 1.吧对象的创建交给spring进行管理

 2.ioc操作有两部分操作

 (1)通过注解的方式调用

 (2)通过xml配置文件调用




IOC的底层原理和技术

 1. xml配置文件

 2. dom4j解决xml

 3. 工厂设计模式

 4. 反射

底层原理:

Spring学习第一天_spring


IOC入门案例步骤

第一步 导入 jar 包

Spring学习第一天_xml_02

第二步 创建类,在类里面创建方法

  古老的方式

        

Spring学习第一天_spring_03

  有了Spring

 

Spring学习第一天_spring_04

 配置文件

Spring学习第一天_spring_05


第三步 创建一个spring配置文件 , 配置创建类


位置不是固定的


第四步 写代码测试对象创建

Spring学习第一天_xml_06


配置文件的约束

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">


</beans>

复制即可


配置文件没有提示的问题

1.Spring引入schema约束,把约束文件引入到eclips中

 (1).复制


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">



Bean实例化三种方式实现

第一种 使用类的无参数构造创建 一般是使用这个

 

Spring学习第一天_Spring学习第一天_07

]

注意:如果学了反射应该知道里面一定要有一个无参构造器

第二种 使用静态工厂创建

 (1)创建静态的方法,返回类对象

Spring学习第一天_spring_08

第三种 使用实例工厂创建

   (1). 创建方法,返回类对象


  

Spring学习第一天_xml_09




Bean标签里面的属性介绍

   表示 :起名称 ,id属性值名称任意命名 id值属性值不能包含特殊符号

     根据id值得到配置对象

 表示 :创建对象所在类的全路径

  --name属性 表示 :功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值

      现在一般不用了

  表示 :scope单词的意思是范围,

     scope属性:Bean的作用范围  

singleton

默认值,单例的   ,单例的意思是对象只创建一次   地址内容一样 ,掌握

 输出的对象是一样  User ban=(User)context.getBean("user");

User ban2=(User)context.getBean("user");

System.out.println(ban);

System.out.println(ban2);输出的是一样的对象地址 ban == ban2 true 地址一样因为是singleton


Spring学习第一天_Spring学习第一天_10

prototype

多例的,多例的意思是每次创建一个对象的时候都是新的对象  User ban=(User)context.getBean("user");

User ban2=(User)context.getBean("user");

System.out.println(ban);

System.out.println(ban2);输出的是不样的对象地址 ban == ban2 false 地址一样因为是prototype

Spring学习第一天_配置文件_11

request

WEB项目中Spring创建一个Bean的对象,将对象存入到request作用域中

session

WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中

globalSession

WEB项目中,应用在porlet环境,如果没有prolet环境那么glbalSession相当于Session

 






属性的注

 

Spring学习第一天_spring_12

 2.在spring框架里面,支持前面两种方式注入

  (1)set方式注入 (用的最多的)

  (2)有参数构造注入




使用有参数的注入属性 掌握

Spring学习第一天_xml_13

使用set方法注入属性掌握 重点掌握Set 方法注入 在开发中一般使用set注入

 

Spring学习第一天_配置文件_14


 。注入对象类型属性 (重点)

1.创建service类和dao类

 (1)在service中得到dao对象

2.具体实现过程

 (1)在service里面吧dao作为类型属性

Spring学习第一天_spring_15

(2)生成dao类型属性的set方法

Spring学习第一天_配置文件_16

(3)在配置文件里面进行注入

Spring学习第一天_Spring学习第一天_17

 (4)测试

 

Spring学习第一天_配置文件_18



全部

Spring学习第一天_配置文件_19



P名称空间注入

Spring学习第一天_Spring学习第一天_20


全部

Spring学习第一天_xml_21


复杂类型注入属性

1.数组

Spring学习第一天_配置文件_22

2.list集合

Spring学习第一天_spring_23

3.map集合

Spring学习第一天_xml_24

4.properties类型

Spring学习第一天_Spring学习第一天_25



IOC和DI区别

(1)IOC:控制反转,吧对象创建交给spring进行配置

(2)DI:依赖注入,向类里面的属性中设置值

(3)关系:依赖注入不能单独存在,需要在ioc的基础之上完成操作




Spring整合web项目原理

1 . 加载spring核心配置文件,

Spring学习第一天_Spring学习第一天_26

 (1)new 对象,功能可以实现,效率很低



2 . 实现思想,把加载配置文件和创建对象过程,在服务器启动 时 完成

3.实现原理

使用技术

(1),ServletContext对象

(2),监听器

(3),具体使用

-在服务器启动时候,为每个项目创建一个ServletContext()对象

-在ServletContext对象创建时候,使用监听器可以具体监听到ServletCntext对象在什么时候创建

-使用监听器监听到ServletContext对象创建时候

-加载spring配置文件,把配置文件配置对象创建

-创建出来的对象放到ServletContext域对象里面(setAttribute方法)

-获取对象时使用到,ServletContext域得到(getAttribute方法)

标签:www,第一天,对象,Spring,学习,创建,org,schema
From: https://blog.51cto.com/u_13355654/6173773

相关文章

  • 学习一 ——HTML的基础标签
    HTML意为超文本标记语言。在HTML+CSS+JS的体系中主要构建网站内容展示。<meta>设置编码方式例如UTF-8;GBK等。<ul>表示无序列表,<ol>有序列表<p>表示段落,<u>表示下划线 <b>字体加粗<i>斜体<sub>下标 <sup>上标 <alt>表示HTML元素本身的物件无法被渲染时,就可以显示alt......
  • 20230406 英语学习进度慢
    我从2月中开始,一直在做精听的练习.但是,你关于精听的进度,你认为太慢了.你的听力加起来,不至5篇,这个量,我认为是严重不足地.正如大佬所言,20篇以上的精听&英转中的完全掌握,将会有英语的极大提升.一方面,精听的确需要大量的时间投入.但是,另外一方面,你的确时间投入需要加......
  • Vue3.0学习(一)------Vue简单介绍
    什么是Vue?官方原文:Vue是一款用于构建用户界面的JavaScript框架。它基于标准的HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。简单来说,Vue就是一个构建用户界面的前端框架Vue的两个核心功能声明式渲染Vue基于标准HTML扩展了一......
  • m基于简化后的轻量级yolov4深度学习网络农作物检测算法matlab仿真
    1.算法描述        YOLOv4的深层网络包括SPP模块、PANet模块、YOLOHead模块和部分卷积,其主要作用是加强目标特征提取并获取预测结果。SPP模块的输入端和输出端各连接一个三次卷积块,每个三次卷积块包含2个1×1卷积和1个3×3卷积。PANet模块包含特征层堆......
  • 走进Java接口测试之TestNg自定报告简单学习
    背景Testng报告是否可以自定义,后面通过查找资料便有了如下自定义报告,testng中提供很多接口,如果需要改造成自己报告只要实现他们的接口即可,以下是根据自己想法实现如下自定义testng报告,如果大家感兴趣,可以根据自己需求修改。也可以把这些数据存储到数据库,之后通过一定规则即可展示......
  • 学习-ts变量声明-捕获变量怪异之处
    经典面试题,varsetTimeout会在若干毫秒的延时后执行一个函数(等待其他代码执行完毕)。for(vari=0;i<10;i++){setTimeout(function(){console.warn(i);},1);//全是10}for(vari=0;i<10;i++){console.warn(i)//0-9} 未完待续。。。......
  • Spring Cache
    SpringCache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注释,就能实现缓存功能。SpringCache提供了一层抽象,底层可以切换不同的Cache实现。具体就是通过CacheManager接口来统一不同的缓存技术CacheManager是Spring提供的各种缓存技术抽象接口。针对不同的缓存技术......
  • Spring学习
    Spring快速学习HelloSpring1、新建maven项目2、导入spring相关依赖<dependencies><!--Spring依赖--><!--1.Spring核心依赖--><dependency><groupId>org.springframework</groupId><artifactId......
  • 走进Java接口测试之流行框架SpringBoot(概念篇)
    引言说起SpringBoot不得不先了解一下Spring这个企业,不仅因为SpringBoot来源于Spring大家族,而是SpringBoot的诞生和Sping框架的发展息息相关。Spring历史2002年正是JavaEE和EJB大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。一个美国的小伙子Ro......
  • 学习-ts基本类型
    未完待续.../***基本类型:*为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体*,布尔值等。TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了*实用的枚举类型方便我们使用。*///布尔值letisDone:boolean=true;//数字letdecLite......