Spring 简介
Spring 是一个开源的轻量级、非侵入式的 JavaEE 框架,它为企业级 Java 应用提供了全面的基础设施支持。Spring 的设计目标是简化企业应用的开发,并解决 Java 开发中常见的复杂性和低效率问题。
Spring常用依赖
<dependencies>
<!-- Spring 核心容器,包括 ApplicationContext 等 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.14</version> <!-- 替换为您需要的版本号 -->
</dependency>
<!-- Spring AOP 相关依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.14</version> <!-- 替换为您需要的版本号 -->
</dependency>
<!-- Spring 对 JDBC 的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.14</version> <!-- 替换为您需要的版本号 -->
</dependency>
<!-- Spring 对事务的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.14</version> <!-- 替换为您需要的版本号 -->
</dependency>
</dependencies>
Spring 优点
- IoC 容器:Spring 的核心是一个 IoC(Inversion of Control,控制反转)容器,它负责管理应用中的组件(Bean),并通过依赖注入将它们装配在一起。这种方式降低了类之间的耦合度,使得代码更易于维护和测试。
- AOP 支持:Spring 提供了 AOP(Aspect-Oriented Programming,面向切面编程)的支持,可以方便地实现横切关注点的功能,如事务管理、日志记录等,从而提高代码的模块化和可重用性。
- 事务管理:Spring 提供了强大且灵活的事务管理支持,可以通过声明式事务或编程式事务来管理数据库事务,确保数据操作的一致性和可靠性。
- 数据访问:Spring 提供了对 JDBC、ORM(如 Hibernate、MyBatis)、NoSQL 数据库(如 MongoDB、Redis)等数据访问技术的集成支持,简化了数据访问层的开发。
- MVC 框架:Spring MVC 是一个基于前端控制器模式的 Web MVC 框架,提供了灵活的配置和强大的扩展性,帮助开发者构建响应式和可扩展的 Web 应用程序。
- 集成支持:Spring 提供了对各种第三方框架和技术的集成支持,如 JMS、JMX、Quartz 等,使得整合其他技术变得更加简单。
- 测试支持:Spring 提供了测试类和测试环境的支持,可以轻松编写单元测试、集成测试和端到端测试,帮助开发者保持代码质量和可靠性。
一、第一个Spring项目
1.1 创建项目工程
首先我们使用IDEA开发工具或Eclipse去创建一个名为 “first-spring”的maven项目。
1.2 导入依赖
在pom.xml中导入依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.14</version>
</dependency>
</dependencies>
1.3 编写代码
在java包下创建一个名为pojo实体类包中创建一个 User类
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
1.4 创建Spring文件
在resources包下创建spring文件,名为 application-context.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">
</beans>
1.4.1 bean标签
bean 标签就是用来创建 Java对象的。
属性有
id: 就是对象的唯一名字
class: 是对象类具体的位置
<property>: property 标签是bean中的设置属性,可以将特定的值或引用注入到bean的属性中。
<bean id="user" class="com.na.pojo.User">
<property name="name" value="香菜的开发日记"/>
</bean>
以上就是通过bean去创建了一个User对象,并且为name 赋特定的值。
1.5 运行测试
创建一个名为 MyTest的类。
public class MyTest {
public static void main(String[] args) {
// 获取 Spring 的上下文对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-context.xml");
// 在Spring当中去寻找对象
// getBean("user") user就是我们在xml文件中 bean标签的 id属性值
User user = (User) applicationContext.getBean("user");
System.out.println(user.toString());
}
}
二、依赖注入
在依赖注入中,不必创建对象,但必须描述如何创建它们。
通常依赖主义可以捅咕哦三种方式完成。即:
2.1 构造函数注入
2.2 setter注入
2.3 接口注入
未完待续