什么是spring
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。
Spring的初衷:
- JAVA EE开发应该更加简单。
- 使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。
- 为JavaBean提供了一个更好的应用配置框架。
- 更多地强调面向对象的设计,而不是现行的技术如JAVA EE。
- 尽量减少不必要的异常捕捉。
- 使应用程序更加容易测试。
Spring的目标:
- 可以令人方便愉快的使用Spring。
- 应用程序代码并不依赖于Spring APIs。
- Spring不和现有的解决方案竞争,而是致力于将它们融合在一起。
Spring的基本组成:
- 最完善的轻量级核心框架。
- 通用的事务管理抽象层。
- JDBC抽象层。
- 集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。
- AOP功能。
- 灵活的MVC Web应用框架。
搭建第一个spring项目
- 使用idea创建一个Maven项目
- 在项目中导入spring基础jar包
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!--spring-corejar:spring的核心jar包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.1.6.RELEASE</version> </dependency> <!--spring-context:spring上下文所依赖的jar--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.6.RELEASE</version> </dependency> <!--spring-beans:spring处理bean所依赖的jar--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.1.6.RELEASE</version> </dependency> <!--spring-expression:spring表达式所依赖的jar--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.1.6.RELEASE</version> </dependency> <!--spring-aop:spring开发aop所依赖的jar包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.1.6.RELEASE</version> </dependency> <!--日志--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency>
- 创建一个spring的配置文件来管理spring中的bean
<?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 class="scope.bean1" id="bean1"></bean> </beans>
- 使用
ApplicationContext
获得xml中的配置ApplicationContext app = new ClassPathXmlApplicationContext("scope/spring.xml"); bean1 b = (bean1) app.getBean("bean1"); b.see();