1.Spring简介(AOP)
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,Spring 是轻量级的框架,Spring 框架的核心特性是可以用于开发任何 Java 应用程序。
Spring三层架构:
A 表现层 web层 MVC是表现层的一个设计模型
B 业务层 service层
C 持久层 dao层
Spring 的优良特性:
(1)控制反转:IOC——Inversion of Control,指的是将对象的创建权交给 Spring 去创建。使用 Spring 之前,对象的创建都是由我们自己在代码中new创建。而使用 Spring 之后。对象的创建都是给了 Spring 框架。
学习链接:
https://blog.csdn.net/fanweiqi1234567890/article/details/78588177
(2)依赖注入:DI——Dependency Injection,是指依赖的对象不需要手动调用 setXX 方法去设置,而是通过配置赋值。
注入分为:属性注入、构造方法注入
<!-- 1.set方法(属性)注入 -->
<bean name="user" class="com.rr.bean.User">
<property name="name" value="tom"></property>
<property name="age" value="20"></property>
</bean>
<!-- 2.构造方法注入 -->
<bean name="user2" class="com.rr.bean.User">
<constructor-arg name="name" value="Tony"></constructor-arg>
<constructor-arg name="car" ref="car"></constructor-arg>
</bean>
<!-- 3.(有依赖的)构造方法注入 -->
<bean id="car" class="org.spring02.Car">
<constructor-arg value="大众"></constructor-arg>
<constructor-arg type="java.lang.String">
<value>白色</value>
</constructor-arg>
<constructor-arg value="中级轿车"></constructor-arg>
</bean>
<bean id="person" class="org.spring02.Person">
<constructor-arg name="uname" value="李四"></constructor-arg>
<constructor-arg name="age" value="23"></constructor-arg>
<constructor-arg name="mycar" ref="car"></constructor-arg>
</bean>
</beans>
<!-- 注意:依赖调用要用ref,人拥有车,使用构造方法注入信息 -->
学习链接:https://blog.csdn.net/zaimeiyeshicengjing/article/details/81367784
(3)非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API
面向切面编程
(4)面向切面编程:Aspect Oriented Programming——AOP
(5)容器:Spring 是一个容器,因为它包含并且管理应用对象的生命周期
(6)组件化:Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
(7)一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上 Spring 自身也提供了表述层的 SpringMVC 和持久层的 Spring JDBC)
2.Srping体系结构
JavaEE必会框架:
SpringMVC+Mybatis+SpringBoot +SpringCloud 等
3.Spring安装配置
1.在pom.xml中引入spring和log4j基础包
<dependencies>
<!-- 其他 -->
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j-version}</version>
</dependency>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
注意:因为${log4j-version}, ${spring.version}引用了spring版本的变量,所以我们还需要声明变量,这样方便更新版本号,声明如下:
<properties>
<log4j-version>1.2.17</log4j-version>
<spring.version>5.2.5.RELEASE</spring.version>
</properties>
2.在pom.xml中引入build文件目录配置
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>*.properties</include>
<include>*.xml</include>
</includes>
</resource>
</resources>
</build>
3.新建resources目录并标记为resources
4.在resources目录下新建applicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="myUser" class="com.fuful.domain.Users"/>
</beans>
5.在web.xml中配置文件中添加代码
6.测试