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概况总结 -> 正文阅读

[Java知识库]spring概况总结

Spring学习

企业级系统

  • 大规模:用户数量多,数据规模大,功能众多

  • 性能和安全要求高

  • 业务复杂

  • 灵活应变

轻量级框架

高内聚(模块内部尽可能关联),低耦合(模块与模块之间的关系尽可能的低)

高内聚:描述了模块内部的一系列功能的相关程度,对于功能之间相关度不高或者根本没有相关性的功能包含在模块中的做法是不可取的。

低耦合:描述了模块直接的依赖、感知程度,耦合的衡量标准是从低到高,一般来说耦合度越低越好。

独立性高


生命周期

实例化—>设置属性—>使用javabean

单例模式:创建始终是一个对象

约束

<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-4.0.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
</beans>

依赖注入

Setter注入

对应的javaBean里面的属性必须要封装必须要有无参的构造函数

构造器注入

必须要有参数的构造器

使用constructor标签进行注入

所有注入类型分为2种类型:普通参数

P命令空间注入

导入P命令空间约束

他是在bean标签属性 p:属性名=“” p:属性名-ref=“引用的id”

不同类型注入

<!CDATA[转义字符]>

内部bean

List Array Set 使用

<list><value></value></list>

map类型

<map><entry key="" value=""></entry></map>

prorerties类型

<props><prop key="">值</prop></props>

注解方式

注入@AutoWired @Resources

生成javabean @Component @controller @Service @Repository


低侵入式,面向切面编程

把纵向的业务逻辑变为横向的编程思想

连接点:是已经存在的

切入点:是我即将要操作的

织入:将东西放入,增强的过程

通知(advise):增强,放进去的方式 前置增强,环绕增强,后置增强

切面( aspect )︰类是对物体特征的抽象,切面就是对横切关注点的抽象


Mybatis总结

? 框架

业务分层

1.web层,视图层:

  • 跳转
  • 页面接收前台页面传入的参数

2.service层,服务层:

  • 数据处理
  • 业务处理

3.dao层,持久化层

  • 与数据库进行交互

4.实体类层:数据的承载

5.工具类层:日期格式化,MD5加密,生成二维码


Mybatis框架

概念:dao层的半自动框架:半自动数据库和数据库表需要自行创建,全自动框架只需创建数据库即可

Mybatis实际上依旧是以sql语句为实现主体

hibernate:是以自带模板为主 HQL 原生的sql

配置文件:mybatis主配置文件

约束是configuration…dtd

根标签是configuration

environments

  • environment
  • transactionManager
  • dataSource

mappers

  • class:配置接口的类路径
  • resource:配置sqlmapper文件路径

typealises:别名

setting:配置

sql mapper(注解方式)

约束是mapper开头

根标签是mapper:namespace:绑定接口或实体类

CRUD实现

  • resulType:返回值类型(大部分用于查询,单条数据还是多条数据)
  • resultMap:绑定sql Mapper当中定义的resultMap
  • parameterType:参数类型

ResultMap:建立持久化类与数据库表之间的关联关系 —ORM

  • 类与表之间的映射
  • 类的实例对象等同与表中的一条数据

子标签

id result association collection

$和#区别

  • ${}:等同于字符串拼接
  • #{}等同于preparedstatement当中的占位符,防止依赖注入

#{变量名:数据库类型}等价于#{变量名,jdbcType=数据库型

动态sql:以标签的形式替代sql语句中部分内容

两个重要对象

sqlsessionFactory(二级缓存,默认关闭)

sqlsession:(一级缓存,默认开启)

Spring总结

service层框架

spring框架的优势

  • 轻量级
  • 低侵入式
  • 解耦,降低耦合性,提高程序健壮性
  • 安全,功能强大

底层使用的技术

  • 反射
  • dom解析
  • 动态代理

两大核心技术

ioc

ioc(DI):控制反转(刁颖这的角度)/依赖注入(spring容器)

  • 谁控制了谁(容器控制了对象),
  • 谁反转了谁(从调度者到了spring容器)
  • 如何进行反转(spring容器进行反转)
  • 反转的对象是谁(Javabean)

两种生成Javabean的方式

xml:

  • id—> 等同于变量名
  • class–>由哪个类创建的对象
  • scope —>设置是单例模式还是圆形模式(protoType),默认单例模式(singleton)
  • lazy-init —>懒加载

1.属性注入:

  • 普通参数使用 value属性
  • 对象使用 ref属性 setter注入
  • list set arraylist使用list标签
  • map使用
  • properties 使用
  • 特殊字符:<![CDATA[转义字符]]>

2.构造器注入

3.命名空间注入:引入p命名空间约束

  • property标签添加p:属性名/p:属性名-ref给属性赋值

注解

1.生成Javabean的注解

  • @Component(通用组件) @controller @Service @Repository(dao层组件

2.注入属性的注解

@Autowired @Resource @Value

3.开启注解扫描

context:component-scan base-package=“包路径”


Aop

Aop:把纵向的编程思想变为横向的编程思想,在不侵入源代码的前提下,进行增加其业务逻辑的操作,低侵入式

面向切面编程实现的方式

  • 静态代理AspectJ
  • 动态代理Spring Aop

spring实现Aop技术方式

xml

导入schema约束

aop config配置

  • 配置切入点 aop:pointcut/
  • 配置增强aop:adviser/ 方式
  • 连接点 joinpoint
  • 切面 aspect 增强类
  • 织入weave
  • 目标 target

注解

导入jar包

  • aopalliance
  • aspectjweaver
  • cglib-nodep

定义切面类加上@Aspect

定义切入点 @Pointcut (execution(* *(…)))

定义增强方法 @Before @After @Around @AfetrReturning 里面的参数可以是execurtion表达式,可以直接写入切入点

开启动态代理注解aop:aspectj-autoproxy


切入点表达式写法

  • exection()
  • exection(访问修饰符 返回值类型 包名 +类名+方法(参数)
  • 除参数以外所有的都可以使用* 代替,参数使用英文的两个点代替(…)—通配符

项目开发思想:高内聚,低耦合

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:16:21  更:2021-11-10 12:17:05 
 
开发: 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/23 23:44:57-

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