本文已参与「新人创作礼」活动,一起开启掘金创作之路
SSM框架系列——Spring概述,快速开始
Spring概述
Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以loC( Inverse Of Control :反转控制)和AOP ( Aspect Oriented Programming :面向切面编程)为内核。 提供了展现层SpringMVC和持久层Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。
优点
- 方便解耦,简化开发 通过Spring提供的loC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
- AOP编程的支持 通过Spring的AOP功能,方便进行面向切面编程,许多不容易用传统OOP实现的功能可以通过AOP轻松实现。
- 声明式事务的支持 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高发效率和质星。
- 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
- 方便集成各种优秀框架 Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持。
- 降低JavaEE API的使用难度 Spring对JavaEE API (如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大为降低
- Java源码是经典学习范例 Spring的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。它的源代码无意是Java技术的最佳实践的范例。
看老图了
quickStart
步骤
- 导入Spring开发的基本包坐标
- 编写Dao接口和实现类
- 创建Spring核心配置文件
- 在Spring配置文件中配置
- UserDaolmpl使用Spring的API获得 Bean 实例
构建一个Java项目
修改pom.xml添加jar依赖
添加以下依赖,并刷新maven
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
构建项目目录
编写测试类和接口
UserDao
package com.example.dao;
public interface UserDao {
void show();
}
UserDaoImpl
package com.example.dao.impl;
import com.example.dao.UserDao;
public class UserDaoImpl implements UserDao {
@Override
public void show() {
System.out.println("UserDaoImpl!");
}
}
创建applicationContext.xml及配置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 id="userDao" class="com.example.dao.impl.UserDaoImpl"></bean>
</beans>
编写系统启动类Application
package com.example;
import com.example.dao.UserDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Applictaion {
public static void main(String[] args) {
//获取配置文件信息
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.show();
}
}
对于bean的理解
我们可以把Bean看作为一个容器 简而言之是一个大盒子(大盒子就是这个项目),这个盒子里有很多的小盒子,这些小盒子就是我们编写的类,我们用一张藏宝图来记录小盒子的名字,位置等信息这就是applicationContext.xml要干的事情,而我们只需要拿到藏宝图(ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");) 就能得到小盒子(app.getBean("userDao");)使用小盒子里的宝藏(调用方法等)