当前位置: 首页> 健康> 科研 > 快速创建一个网站_中国新闻社官网招聘_企业网络推广网站_站长工具忘忧草社区

快速创建一个网站_中国新闻社官网招聘_企业网络推广网站_站长工具忘忧草社区

时间:2025/7/8 18:58:06来源:https://blog.csdn.net/nie6668888/article/details/144614933 浏览次数:0次
快速创建一个网站_中国新闻社官网招聘_企业网络推广网站_站长工具忘忧草社区

1. 什么是spring框架。

1.spring它是一款开源框架,它用来解决企业开发的复杂性。
2.spring框架提供了两个核心技术:IOC和AOPIOC:控制反转。把创建对象的权力交于spring框架来创建。并且管理对象的生命周期 AOP:面向切面编程。在不改变源码的基础可以对我们的代码进行扩展。
3.spring框架有什么特点:1.方便解耦,简化开发。2.AOP编程的支持--更方便对源码进行扩展。3.声明式事务的支持4.方便集成各种优秀框架--mybatis hibernate mybatis-plus 等5.方便程序的测试--spring提供了自己的单元测试。 

2. 为什么使用spring?

控制正转--类与类之间耦合性太高。可维护性差。借助工厂模式来解决类与类之间的耦合。

2.1 使用工厂模式和接口来解决上面的耦合

上面我们通过工厂模式+接口模式解决了类与类之间的耦合。 但是我们编写的工厂模式代码考虑不全面。spring框架提供了IOC模式帮你完成类的创建。以及类与类之间的依赖。

3. IOC

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。
​
IOC:控制反转--有spring容器创建对象并管理对象的生命周期。
DI: 依赖注入,spring会自动注入该类所依赖的属性。

3.1 怎样实现spring的ioc功能

1.引入spring依赖

     <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.15.RELEASE</version></dependency>

2.配置文件

<?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">
​<!--把Teacher 对象交给spring管理.bean表示一个对象.id: bean的唯一标识class: 表示要创建对象的全类名--><bean id="t" class="com.aaa.Teacher"></bean>​
</beans>

3.创建一个类

public class Teacher {public void show(){System.out.println("Teacher show()");}
}

4.测试

public class Test01 {public static void main(String[] args) {//获取spring容器。ApplicationContext app=new ClassPathXmlApplicationContext("spring.xml");//从容器中获取指定的对象。---测试目的就是想让大家知道容器帮你创建Teacher类的对象。Teacher teacher= (Teacher) app.getBean("t");teacher.show();}
}

3.2 获取bean的方式

表示从spring中获取对象的方式。

1.根据id获取bean对象

 //获取spring容器。ApplicationContext app=new ClassPathXmlApplicationContext("spring.xml");//从容器中获取指定的对象。---测试目的就是想让大家知道容器帮你创建Teacher类的对象。Teacher teacher= (Teacher) app.getBean("t");

缺点: 根据id获取需要强制转换。 一旦强制就可能出现数据安全问题。

2.根据反射类获取bean对象

  Teacher teacher = app.getBean(Teacher.class);teacher.show();

缺点: 如果容器中存在多个该类型的对象时无法拿到。

3.根据id和反射类获取bean对象

Teacher teacher = app.getBean("t",Teacher.class);

面试题: 获取bean的方式。

3.3使用注解完成bean的创建

上面我们在xml文件中通过bean标签,已经完成了bean创建交于spring来管理。如果有大量的类都需要交于spring创建,那么我们就需要在xml中写大量的bean标签。spring提供了注解方式。

常用注解:

@Controller: 控制层类上

@Service: 业务层

@Repository: mapper层

上面三个注解的作用和@Component一样的。它们的底层都是用的@Component.区分不同层的类。

3.4 bean的作用域。

spring帮你创建bean的方式。

提供了四种作用域:

singleton: 单例。--spring只创建一次对象。 采用该模式。

prototype: 多例。--每次得到beanspring都创建新的bean;

request: 当请求时创建bean对象。。

session: 一个会话共享一个bean.


request和session只适合web

4. DI依赖注入

上面我们知道spring可以帮你完成bean对象的创建。 如果某个类依赖另一个类对象。我们也可以使用spring的DI功能。

DI( Dependency Injection ):依赖注入 就是给对象中的属性注入相应的值.

IOC控制反转的最终目的就是降低程序的耦合,也就是削减依赖关系。

依赖关系的管理以后都交给spring维护,依赖关系的管理就称之为依赖注入。也就是说在当前类需要用到其它类的对象时,由spring为我们提供,我们只需要在配置文件中说明依赖关系的维护就可以了。

4.2 注入方式

第一种: 通过set方法注入
第二种: 通过构造方法
第三种: 自动注入

自动注入

通过set方法

构造方法注入值

    <bean id="t2" class="com.ddd.Teacher"><constructor-arg name="name" value="李四"/><constructor-arg name="age" value="19"/></bean>

使用第三方的类,第三方的值需要我们安装我们的要求给定

4.3 可以使用注解完成注入关系。

@Autowired:安装类型匹配,在按照id匹配。

关键字:快速创建一个网站_中国新闻社官网招聘_企业网络推广网站_站长工具忘忧草社区

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: