●简化开发
。==IOC(反转控制)==把之前new对象交给容器提供外部的对象
。==AOP(面向切面编程)==不改变原有的设计或功能添加别的功能
建立如图的文件夹

【第一步】导入Spring坐标
在pom.xml文件中配置
第三方的入,由Spring提供,想用的时候,程序代码直接拿来使用
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.3</version>
</dependency>
【第二步】定义Spring管理的类(接口)
在dao文件中建立接口,在Impl建立其接口的实现类
接口:
public interface Orderdao {
public void save();
}
实现类:
public class OrderDaoImpl implements Orderdao {
@Override
public void save() {
System.out.println(" order里边的save方法正在运行。。。");
}
}
【第三步】创建Spring配置文件,配置对应类作为Spring
进行配置下xml文件,定义其中的bean的属性
<bean id="orderDao" name="dao dao2 dao3" class=" com.by.dao.impl.OrderDaoImpl"></bean>
管理的bean对象 【第四步】初始化IOC容器(Spring核心容器/Spring容 器),通过容器获取bean对象
public class Springtest {
@Test
public void test01() {
//创建IOC容器,加载spring的核心文件 固定的用法
ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml");
//写的是设置的bean中的id名
//从IOC容器中获取Bean对象
//固定用法
//用的是接口名称,只能使用接口名称
Orderdao orderdao = (Orderdao) ac.getBean("orderDao");
//输出的是最后调用save的地方
System.out.println(orderdao);
//调用bean对象,就是将定义的类里边的结果进行输出
orderdao.save();
OrderService orderService =(OrderService) ac.getBean("OrderService");
System.out.println(orderService);
orderService.save();
}
DI(依赖注入)
他是spring核心IOC的具体体现,通俗来讲就是让Spring来维护业务层和持久层的关系。
降低耦合度
让Spring知道ordersevice和dao的关系
public class OrderServiceImpl implements OrderService {
private Orderdao orderdao;//删除new对象 目的是降低耦合度
//好像是将dao和service进行连接
//提供依赖的setter方法
//setter注入
//让Spring知道ordersevice和dao的关系
public void setOrderdao(Orderdao orderdao) {
this.orderdao = orderdao;
}
@Override
public void save() {
System.out.println("OrderService save 方法初始化。。。。。。 OrderService");
}
}
application中设置
<bean id = "OrderService" class="com.by.service.OrderServiceImpl">
<!--
配置service和dao的关系
name 要写接口的名字 这个名字在哪里呢?
降低耦合的引用注入名字 或者是set出的默认项的名字
ref 外引用 是引用外部id的名字
property 配置当前bean标签的属性
-->
<property name="orderdao" ref="orderDao"/>
</bean>
进行测试方法的输出
ublic class Springtest {
@Test
public void test01() {
ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml");
Orderdao orderdao = (Orderdao) ac.getBean("orderDao");
System.out.println(orderdao);
orderdao.save();
OrderService orderService =(OrderService) ac.getBean("OrderService");
System.out.println(orderService);
orderService.save();
}
}
输出的结果:

一般使用注解代替xml文件的配置
耦合问题
事物和日志操作
不用手动new对象,通过第三方根据要求提供需要的bean对象的代理对象