spring概述
是一个分层的javase或者是JavaEE 一个轻量级开源框架
Spring优势
利于解耦,简化开发
AOP编程支持
AOP是面向切面的 :切面 = 切入点(方法) + 通知(增强内容)
AOP是横向抽取,继承是纵向抽取,目的都是一个代码可以在多个方法里面使用,而且AOP里面不需要子类,哪个地方需要就直接插入到哪里
AOP横向抽取===主要是抽取出来类或者方法种相同的内容,使得它可以共用
声明事务的支持
声明事务:提前在Spring的主配置文件中去配置有事务方法声明出来
这方法就自动加持事务了
方便程序的测试
可以集成junit
可以集成很多优秀的框架,可以借助学习框架的源码,学习经典的设计思想
Spring Framework的体系架构图解
schema讲解
目的就是为了.xml文件汇总继续配置的时候,能够按照提前预约好的约束来使用,否则就不能使用
<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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--这是applicationContext里面的约束-->
解释
xmlns="http://www.springframework.org/schema/beans"
xml就表示是xml文件, ns表示---->namespace(命名空间) 一般来说配置一个xml文件,namespace,因为后面没有:xsi 所以他是一个匿名的命名空间,一般来说一个xml文件只有一个匿名的命名空间,如果一个标签是匿名的命名空间,那么使用的时候就可以直接写
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
这就不是匿名空间,.所以我们在写这个使用的标签的时候就需要 xsi:标签
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
因为我们要使用bean的约束,他的约束是整体采用是schema 约束 , 所以我们要配置schema的约束地址
schemaLocation约束地址才用的是key—value键值对的约束方式,约束是来自于 xsi后面的地址,xsi就是别名,后面的地址就是约束
使用spring框架:在pom.xml文件中引入依赖
<!--引入Spring的依赖,引入之后就能使用Sprig框架-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
因为要测试,所以引入junit
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
配置maven编译器
<build>
<plugins>
<!--配置maven的编译器-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>