1.Spring概述

SSM框架是JavaEE企业级应用的主流选择,由Spring、SpringMVC和Mybatis组成。Spring通过依赖注入(DI)和面向切面编程(AOP)管理组件和事务;SpringMVC处理模型-视图-控制器流程;Mybatis则专注于数据库操作。依赖注入包括构造方法注入和setter方法注入,用于管理对象间的依赖关系。
摘要由CSDN通过智能技术生成

ssm框架是目前比较主流的JavaEE企业级框架

即Spring springMVC Mybatis的缩写,

  1. Spring通过依赖注入(DI)来管理各层组件,使用AOP(面向方面编程)管理事务,日志权限等

  2. SpringMVC 代表Model(模型) View(视图) Control(控制),接收外部请求,进行分发和管理

  3. Mybatis基于JDBC的框架,用来操作数据库,并将业务实体和数据表联系起来

Tomcat 是免费的开源web容器(web容器是处理客户端请求)

Spring的基本应用

Spring

  1. 轻量级集成框架,java web开发框架

  2. 核心是一个完整的基于控制反转(IoC)的轻量级容器,以IoC和AOP(Aspect Oriented Programming,面向方面编程)为内核

  3. Spring认为一切类都是资源,而资源都是类的实例对象(Bean),容纳和管理这些Bean的是Spring所提供的IoC容器,即Spring是一种基于Bean的编程

Spring的优点

  1. 非侵入式:指Spring框架的API不会在业务逻辑上出现

  2. 容器:管理对象的生命周期,以及对象与对象之间的依赖关系,通常用xml文件来实现

  3. IoC:控制反转,即依赖关系的转移

“依赖关系亦称“逻辑关系”。在项目管理中,指表示两个活动(前导活动和后续活动)中一个活动的变更将会影响到另一个活动的关系。

  1. 依赖注入:对象间依赖关系的实现

  2. AOP:面向方面编程,即把服务剥离出来形成一个方面,可以复用,然后将"方面"动态的插入到业务逻辑中

Spring的体系结构

在这里插入图片描述

Core Container 核心容器
  1. Beans模块:提供BeanFactory

  2. Core核心模块:提供Spring框架的基本组成部分,包括IoC和DI

  3. Context上下文模块:访问定义配置的任何对象的媒介,ApplicationContext是Context的核心接口

  4. Spring EL:运行时查询和操作对象图强大的表达式语言,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用JDK中提供的静态常量,获取外部Properties文件中的的配置

Data Access/Integration 数据访问/集成层

JDBC模块:JDBC的抽象层,减少开发中对数据库操作的代码

ORM模块:Object Relational Mapping 对象关系映射

OXM模块:Object XML Mapping,提供一个支持对象/XML映射的抽象层实现

JMS模块:Java消息传递服务

Translation模块:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理

Web

Web模块:提供基础的针对Web开发的集成特性,如文件上传等

Servlet模块:也称作Spring-webmvc模块,包含Spring的模型-视图-控制器(MVC)

WebSocket模块:主要是两个进程间的通信这一块

AOP:提供面向方面编程的支持
Aspect:提供与AspectJ的集成功能,Aspect是一个功能强大且成熟的面向方面编程的框架
Intrumentation框架:类工具的支持和类加载器的实现
Messaging:消息传递体系结构和协议的支持
Test模块:提供对单元测试和集成测试的支持

Spring的核心机制:IOC和DI

IoC另外一个称呼是依赖注入(DI),是两个角度描述的同一个概念

依赖注入的类型
  1. 构造方法注入

构造方法可以是有参的和无参的

`

public AdminInfo(String name, String pwd) {
    super();
    this.name = name;
    this.pwd = pwd;
}`

applicationContext.xml文件配置如下

`

<bean id="adminInfo" class="com.ssm.entity.AdminInfo">
<constructor-arg name="name" value="admin"></constructor-arg>
<constructor-arg name="pwd" value="123456"></constructor-arg>
</bean>`
  1. Setter方法注入

注意:使用setter方法注入时Spring通过JavaBean的无参构造方法实例化对象,当编写带参构造方法后,Java虚拟机不会再提供默认的无参构造方法,需自行添加一个无参构造方法

``

public void setId(int id) {   //setI + alt+/
    this.id = id;
}
	//手动添加无参构造方法
	public AdminInfo() {
		
	}``

p命名空间

添加p命名空间的声明再xml文件中

xmlns:p="http://www.springframework.org/schema/p"

`

<!-- 属性setter方法注入,p命名空间-->
<bean id="admin" class="com.ssm.entity.AdminInfo" p:id="8" p:name="zzzz" p:pwd="sdfs" />`

为AdminInfo类中的name和pwd添加setter方法

`

public void setName(String name) {
    this.name = name;
}

public void setPwd(String pwd) {
    this.pwd = pwd;
}`
示例

DAO(Data Access Object)表示数据访问层

Service 表示业务逻辑层

元素中当使用ref属性,表示对Spring容器中的某个Bean实例的引用

xml文件:

<!-- 创建UserDAoImpl的实例 -->
<bean id="userDAO" class="com.ssm.dao.impl.UserDAOImpl"></bean>

<!-- 创建UserService的实例 -->
<bean id="userService" class="com.ssm.service.impl.UserServiceImpl">
   <!-- 属性setter方法依赖注入数据访问层的组件 -->
     <property name="userDAO" ref="userDAO"></property>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值