人生若只如初见---Spring概述以及环境的搭建
Spring 是什么
Spring是由Apache开发的一种轻量型Java框架,能够更加便捷使用JavaBean(之前只有EJB才能实现)
Spring的主要优势:分层架构:
- DAO层:(Data Access object)数据访问对象,一个数据库的接口
- Service层:对于业务的判断和处理
- Controller层:接收用户的请求以及和页面的交互
Spring是一个IOC(DI)容器和AOP模式框架。
这里需要解释 什么是IOC,什么是AOP
1.IOC(DI):Inversion of Control 控制反转
它是一种设计模式:在对象被创建的时候,由一个调控系统内所有对象的外界实体将其依赖的对象的引用传递给它。(通俗来讲:在A类中调用B类的对象b,可以直接调用外界new好的对象注入到A类中,避免内部类之间的耦合)而它最常见的方法就是依赖注入(Dependency Injection 简称:DI)
2.AOP: Aspect Oriented Programming 面向切面编程
通过预编译的方式和运行期间动态的管理,实现在不修改源代码的基础上给程序添加功能的一种技术,比如将日志记录,性能统计等代码从业务逻辑代码中划分出来。在对他们的行为改变的时候不影响其他业务逻辑代码。
Spring 开发环境的搭建
1.所需jar包:
(1)spring-context:装载bean的定义并组装起来。
(2)spring-core:发现,建立并维护bean与bean之间的关系所需要的一系列工具
(3)spring-beans:(Spring中的主角)Spring的依赖注入正是将new出来的对象包裹在bean中注入到程序中的
(4)spring-expression:一个强大表达式解析语言,支持在运行时动态的解析表达式给对象赋值(目前不是很理解)
(5)commons-logging: 提供简单日志以及日志解耦功能(解耦功能暂时也没有用过)
通过maven工程加载:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
2.配置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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd "> </beans>
Spring的配置文件用于Spring工厂进行 Bean生产,依赖注入以及Bean实例。其中命名为applicationContext.xml是Spring的默认配置文件,当容器找不到指定的其他xml文档时,默认加载这个文件。
解析xml文件中的beans标签及属性信息:
(1)beans:整个配置文件的根节点,包含一个或多个bean元素
(2)xmlns: xml namespace当前xml指定的命名空间
(3)xmlns:xsi :指的是xml所要遵循的标签规范,xmlns的一个属性
(4)xsi:schemaLocation:指定的命名空间对应的验证文件,就是xml书写时需要遵循的语法,用于声明了目标命名空间的模式文档。xsi的一个属性。在schemaLocation中的引用都是 成对存在的。
例如:
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
(5)xsd文件: XML Schemas Definition xml的结构定义
人生若只如初见---Spring概述以及环境的搭建的更多相关文章
- 《微信小程序七日谈》- 第一天:人生若只如初见
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 微信小 ...
- 【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见
内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是 ...
- python 自动化之路 day 01 人生若只如初见
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 Python 注释 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式i ...
- Spring MVC开发环境的搭建和实例
一.安装jdk 二.安装tomcat 三.安装maven 新增环境变量MAVEN-HOME,并在path变量中添加bin路径 四.安装IntelliJ IDEA 五.创建maven web项目选择jd ...
- Spring+SpringMVC+Mybatis环境的搭建(使用Intellij IDEA)
前言:本文主要介绍利用IDEA如何搭建SSM环境,并使用mybatis的逆向生成功能,根据数据表生成对应mapper接口和sql映射文件.具体步骤如下. 开发环境: IDEA 14.1.7 maven ...
- [原创]java WEB学习笔记54:Struts2学习之路---概述,环境的搭建
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Spring 源码阅读环境的搭建
前言 本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!当前版本:5.3.2-SNAPSHOT. 环境准备 Git JDK master 分支需要 JDK 11 5.2.x 分支, J ...
- Spring概述
layout: post title: Spring概述 tags: [Java,Spring,IOC,AOP] --- Spring是一个开源的轻量级Java SE(Java 标准版本)/Java ...
- 基础知识(09) -- Spring 概述
Spring概述-------------------------------------------------------------------------主要内容: 1.Spring是什么 2 ...
随机推荐
- [最新方法]终于解决了 Ubuntu 14.04 网络图标不见了 的问题|Ubuntu14.04 网络图标消失
解决 Ubuntu 14.04 网络图标不见了 消失的问题 这个问题困扰了我大半年了.但是我就硬是不想重新装系统.搜索研究一番发现,这个问题是nm-applet的问题. 然后偶然发现nm-ap ...
- MySQL 字段值为NULL,PHP用json转换,传给js,显示null
这个问题出在php的json_encode环节,这个函数返回的json数据中会把空值写作null. 想通过在js端这样把null转为空字符串是不可以的: JSON.parse(JSON.stringi ...
- 谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信
前言 之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法 ...
- 百度语音合成---前端vue项目
☞:官方文档 ☞:网页示例 具体步骤: 1.通过 socket.io 接收后端传过来的数据. 2.判断是否在播放声音. 如果没有则直接获取百度 token 播放声音 3.如果有,则存入数组.声音播放 ...
- Flask:Flask-script插件
Flask-Script插件扩展提供向Flask插入外部脚本的功能,包括一个开发用的服务器,一个定制的python shell,设置数据库的脚本,cronjobs,及其它运行在web应用之外的命令行任 ...
- [考试反思]0809NOIP模拟测试15:解剖
说在前面: 不建议阅读.这里没有考试经验,只有一大堆负面情绪. 看了你不会有什么收获.看完了就不要怪我影响了你的心情. 以后不粘排行榜了.没什么意思没什么用. 但是我的意思并不是因为这次没考好的一时兴 ...
- 基于Rancher搭建Kubernetes
基于Rancher搭建Kubernetes可以大大的简化安装的步骤,直接安装Kubernetes操作复杂并且容易出错. 转自 https://blog.csdn.net/u011142688/arti ...
- 吉利WA数
- day 2 下午 骑士 基环树+树形DP
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #inc ...
- 通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战
前情提要: 通俗地说逻辑回归[Logistic regression]算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklear ...