index.jsp是一个不用的文件,因为他不全,可以直接删除再webapp下创建一个新的index.jsp
如果想开启可以改为,2.4以上版本
maven创建的项目,web.xmI文件中的内容,默认是关闭el表达式的,可以替换一下:
<?xml version="1.0”encoding="UTF-8"?><web- -app version= “2.4” xmIns= “http:/ /java.sun.com/ xml/ns/j2ee”
xmIns:xsi=“http:/ /www.w3.org/2001 /XML Schema- _instance”
xsi:schemal ocation= "http:/ /java.sun.com/xml/ns/j2ee
http://java. sun.com/xml/ns/j2ee/web -app 2_ 4.xsd">
这样就是默认开启el表达式了
源文件夹目录(写代码):java
配置文件(类似eclipse的config)resources
单元测试test
单元测试配置文件testresources
1.1 什么是spring
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是 于2003年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。
1.2 优势
1.方便解耦,简化开发
2.AOP编程的支持
3.声明式事务的支持
4.方便程序的测试
5.方便集成各种优秀框架
6.降低Java EE API的使用难度
7.Java源码是经典学习范例
1.3 版本一 spring4.X (教学使用)
1.4 spring模块划分
Spring Framework由大约20个模块组成的功能组成。这些模块分为核心容器,数据访问/集成,Web, AOP (面向方面编程),仪器,消息传递和测试,如下图所示
- Spring核心容器:核心容器是Spring框架的重要组成部分,也可以说是Spring框架的基础。他在整个框架中的作用是负责管理对象的创建,管理,配置等等的操作。其主要包含spring-core, spring-beans,spring-context, spring expression, spring-context-support组件。
2.面向切面编程:Spring框架还提供了面向切面编程的能力,利用面向切面编程,可以实现一些面向对象编程无法很好实现的操作。例如,将日志,事务与具体的业务逻辑解耦。其主要包含spring-aop,spring-aspects组件。
- Instrumentation:该模块提供了为JVM添加代理的功能,该模块包含spring-instrument,spring-instrument-tomcat组件,使用较少,不必过分关注。
4.数据访问与集成:Spring框架为了简化数据访问的操作,包装了很多关于数据访问的操作,提供了相应的模板。同时还提供了使用ORM框架的能力,可以与很多流行的ORM框架进行整合,如hibernate,mybatis 等等的著名框架。还实现了数据事务的能力,能够支持事务。包含spring-jdbc,spring-tx, spring-orm, spring- oxm,spring-jms, spring- messgging组件。
-
Web和远程调用: Spring框 架支持Web开发,以及与其他应用远程交互调用的方案。包含spring-web, spring-webmvc, spring-websocket. spring-webmvc-portlet组件。
-
Spring测试: Spring框架提供 了测试的模块,可以实现单元测试,集成测试等等的测试流程,整合了JUnit或名TestNG测试框架。包含spring-test组件。
以上就是Spring框架的几个主要模块。而在实际的开发过程中,不必要引入所有的Jar包,只需要引入与自己项目相关的库就行了。例如,只需要Spring框架的容器功能,实现依赖注入,那么只需要引入核心框架的几个库就完成了,其他模块例如Aop模块的库是没有必要引入的。
3.1_ JlOC(inversion of control控制反转)
控制:控制对象的创建和销毁(生命周期)
反转:以前创建对象由程序员完成,现在由spring来完成,底层可以理解为“工厂+反射+配置文件"实现程序解耦合;
BeanFactory:老版本的工厂类
调用getBean的时候,才会生成类的实例(2019年没有了)
ApplicationContext:新版本的工厂类
ApplicationContext:加载配置文件的时候,就会将Spring管理的类都实例化
ApplicationContext有两个实现类
ClassPathXmlApplicationContext加载类路径下的配置文件
FileSystemXmlApplicationContex:加载文件系统下的配置文件
web应用中初始化容器(springMVC)
监听器、servlet
3.2. DI (Dependency injection依赖注入)
前提要有IOC
组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。容器全权负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。
Spring使用
spring.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
</bean>
<bean id="car" class="org.example.demo1.Car">
<constructor-arg name="brand" value="宝马"/>
<constructor-arg name="color" value="red"/>
</bean>
spring核心配置
构造方法>接口初始化>bean配置初始化