本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!
也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习,欢迎关注!
⭕ Spring 是轻量级的开源的 JavaEE 框架
⭕ Spring 可以解决企业应用开发的复杂性
⭕ Spring有两个核心部分:IOC 和 Aop
IOC
:控制反转,把创建对象过程交给 Spring 进行管理Aop
:面向切面,不修改源代码进行功能增强
⭕ 轻量级
从大小与开销两方面而言Spring都是轻量级的。完整的Spring框架可以只有在一个大小只有1M多的JPA文件里发布,并且Spring所以要的处理开销也是微不足道的。
⭕ 控制反转
Spring通过控制反转IOC技术来降低程序间的耦合。当应用了IOC,一个对象依赖的其它对象都会通过被动的方式传递进来,而不是这个对象自己创建或查找依赖对象。
⭕ 面向切面
Spring支持面向切面编程,并把应用业务逻辑和系统服务分开。
⭕ 容器
Spring使用容器包含并管理应用对象的配置和声明周期,你可以配置你的每一个bean如何被创建----基于一个可配置原型,你的bean可以创建一个单独的实例或者每次需要时都创建一个新的实例。
⭕ 框架
Spring可以将简单的组件配置、组合成复杂得应用。在Spring中,应用对象声明式的组合,典型的是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等),将应用逻辑的的开发留给开发者。
⭕ 方便解耦,简化开发
通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring容器进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
⭕ AOP 编程支持
通过 Spring 的 AOP 功能,方便进行面向切面的编程。
⭕ 方便进行事务操作
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。
⭕ 方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
⭕ 方便和其他框架进行整合
Spring 可以降低各种框架的使用难度,提供了对各种优秀框架( Struts、 Hibernate、Hessian、 Quartz等)的直接支持。
⭕ 低 API 开发难度
(1)查看Spring最新版本步骤
(2)下载地址
点击跳转下载导航
导入以下jar包:
在这里插入图片描述
public class Person {
public void eat(){
System.out.println("吃东西!");}
}
(1)Spring 配置文件使用 xml 格式
(2)编写配置文件
<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="person_ir" class="com.ir.spring5.Person">bean>
beans>
注意:
在配置文件中的"
bean
"标签里,id
可以随便取,class
为对应的类的全路径。
package com.ir.spring5;
import javafx.application.Application;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test {
@Test
public void testEat(){
//1.加载spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("person1.xml");
//2. 获取配置创建的对象
Person person = context.getBean("person_ir",Person.class);
//3. 测试
System.out.println(person);//com.ir.spring5.Person@436e852b
person.eat();//吃东西!
}
}
注意:
ClassPathXmlApplicationContext()
:顾名思义,ClassPath
寻找类的路径,但此路径是相对于src下的路径,如果配置文件不是直接创建在src下的,则需要写清楚路径。