Spring学习记录(一):Spring概述
前言
关于spring的整理笔记记过程,从0~1的学习之路 ~~~~
一、Spring是什么?
Spring是分层的企业级全栈式轻量级开源框架。
Spring提供了表现出SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等应用技术,并能整合众多开源框架。
Spring两大核心:
IOC:控制反装——把对象的创建权交给Spring(后续在学习IOC时详解)。
AOP:面向切面编程:在不修改源码的情况下,对方法进行增强。(AOP底层基于动态代理进行封装,后续在AOP时详解)。
二、Spring的优势
1.方便解耦合,简化开发
Spring就是一个容器,可以将所有对象创建和关系维护交给Spring容器。
耦合:程序间的依赖关系。
解耦:降低程序间的依赖关系。
package sqldemo1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DBHelper {
public static final String url = "jdbc:mysql://127.0.0.1/student";
public static final String name = "com.mysql.jdbc.Driver";
public static final String user = "root";
public static final String password = "";
public Connection conn = null;
public PreparedStatement pst = null;
public DBHelper(String sql) {
try {
//注册去驱动
DriverManager.registerDriver(new com.mysql.Driver());
conn = DriverManager.getConnection(url,user,password);//获取连接
pst = conn.prepareStatement(sql);//准备执行语句
} catch (Exception e) {
e.printStackTrace();
}
}
public void close() {
try {
this.conn.close();
this.pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
当前代码中,注册驱动时,需要new一个对象来实现注册,即若把pom文件中的注释掉,则会出现报错,出现编译器依赖。体现耦合重的问题。
当然通常的写法是
Class.forName("com.mysql.Driver")
这种写法则是编译器不依赖,运行期才依赖,但是也有相关问题,即为硬编码问题,这时候则需要引入配置文件来进行硬编码问题的解决。
因此解耦思路则为配置文件+反射(为后续IOC做一下铺垫!)
2.AOP编程的支持
Spring提供面向切面编程,方便实现程序的权限拦截,运行监控等功能。
3.声明式事务的支持
通过配置完成事务的管理,无需手动编程。
4.方便测试,降低API的使用
Spring对Junit4支持,可以使用注解测试。
5.方便集成各种优秀框架
Spring内部提供了对各种框架的直接支持。
三、Spring体系结构
四、总结
在接下来的整理中将会围绕各种优势以及两大核心进行整理与学习 ~~~