Spring学习笔记(1)
Spring框架介绍
-
Spring是轻量级的开源的JavaEE框架
-
Spring可以解决企业应用开发的复杂性
-
Spring有两个核心部分:
- IOC:控制反转,把创建对象过程交给Spring管理
- Aop:面向切面,不修改源代码进行功能增强
-
Spring特点
- 方便解耦,简化开发
- Aop编程支持
- 方便程序测试(junit4)
- 方便和其他框架及进行整合
- 方便进行事务操作
- 降低API开发
入门案例
-
导入Spring5相关jar包
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> </dependencies>
-
创建Spring配置文件,在配置文件配置创建的对象
-
Spring配置文件使用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"> <!-- bean标签:让spring创建一个对象并放置在IOC容器内 属性: id : 标签该bean对象的唯一标识符,bean的名称,不能重复的 class : 需要创建对象的类型的全限定名,spring通过反射机制创建该类的对象(要求:该类必须拥有无参构造方法) --> <bean id="user" class="com.lxk.User"></bean> </beans>
-
-
编写测试代码
public class TestDemo { @Test public void test(){ //1.加载spring配置文件 ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); //2.获得配置创建的对象 User user = context.getBean("user", User.class); System.out.println(user);//com.lxk.User@9a7504c user.add();//执行力User类的add方法 } }
IOC容器
-
IOC概念和原理
- 控制反转,把对象创建和对象之间的调用过程交给Spring进行管理
- 使用IOC目的:为了耦合度降低
- 入门案例就是IOC实现
-
IOC底层原理
- xml解析,工厂模式,反射
原始方式:
工厂模式:
IOC:
IOC接口:
-
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
-
Spring提供IOC容器实现两种方式:(两个接口)
都可以创建对象
-
BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,不提供给开发人员使用
*加载配置文件时候不会创建对象,获取(使用)对象时才去创建对象(getBean())
-
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
*加载配置文件时就会把配置文件对象创建
前者实现类读取xml配置文件需要绝对路径,后者只要xml文件在 src下直接写xml名
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南