首页 > 其他分享 >Spring框架--个人笔记

Spring框架--个人笔记

时间:2024-07-15 09:28:54浏览次数:11  
标签:事务 -- Spring 笔记 int bean spring public

1.什么是spring框架

1.spring是一款开源框架,解决企业开发的复杂性。

2.spring框架提供了三大核心思想:IOC、AOP、DI

IOC:控制反转。创建对象并管理生命周期。

AOP:面向切面编程。不改变源码对代码进行扩展。

DI:依赖注入。

3.spring框架特点:

1.方便解耦,简化开发。

2.AOP编程的支持--更方便对源码进行扩展

3.声明式事务的支持

4.方便集成各种优秀框架--mybatis hibernate mybtais-plus等

5.方便程序的测试--spring提供了自己的单元测试

1.2为什么使用spring框架

初级

工厂模式

工厂模式虽然解决了等号右边创建对象的依赖的问题,但是没有解决等于左边的依赖问题。可以使用接口。如果这时1000个依赖Food的类,Food即使升级为Food1也只需要改变FoodFactory中这一处代码即可。我们自己通过工厂模式+接口虽然解决了上面类与类之间的依赖关系。但是还有很多考虑不周的地方,那么是否存在一款框架能更好的解决上面的依赖关系吗?--有。spring提供的IOC技术

2.spring-IOC

控制反转(Inversion of Control,缩写IOC),是面向对象编程中的一种设计原则,可以用来降低计算机代码之间的耦合度。

--先注入依赖--把类交与spring容器进行管理--测试类中加载spring文件利用getBean()随时可调用类的内容

其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,交于spring容器来帮助创建对象。

1.依赖--还是和springMVC一样的依赖

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>5.2.10.RELEASE</version>

</dependency>

2.创建spring配置文件

<!--交于spring创建bean对象

id:bean的唯一标识

class:表示哪个类交于spring创建

-->

<bean id="f" class="com.wjy.demo.Food"></bean>

</beans>

3.测试

public class Test01 {
    public static void main(String[] args) {
        //1.加载spring的配置文件
        ApplicationContext app = new ClassPathXmlApplicationContext("classpath:spring.xml");
        //2.从spring容器中获取指定的对象
 //获取spring容器中bean的方式
     //方式1,需要强制转化
       /* IFood f =(IFood) app.getBean("f");
        f.show();
     //方式2,如果容器中存放多个匹配的对象时,则出现错误(适用于一个时)
        IFood bean = app.getBean(IFood.class);
        bean.show();
     //方式3,结合上面两种(推荐使用)
        IFood bean1 = app.getBean("f2", IFood.class);
        bean1.show();*/


       /* ApplicationContext app = new ClassPathXmlApplicationContext("classpath:spring02.xml");
        IFood food = (IFood) app.getBean("food");
        food.show();*/
  }
}

2.1获取spring的bean的方式

获取spring容器中bean的方式

①通过id获取--需要强制转化

IFood f =(IFood) app.getBean("f");

f.show();

②通过反射类--适用于一个时

IFood bean = app.getBean(IFood.class);

bean.show();

③结合上面两种(推荐)

IFood bean1 = app.getBean("f2", IFood.class);

bean1.show();

2.2使用spring注解完成bean的创建

上面我们通过spring的xml文件来创建和管理bean对象,如果我们的bean有100个,我们就需要在xml文件中创建100bean标签。这样非常麻烦。 我们可以使用注解@完成spring的bean创建。

1.修改spring配置文件

<!--指定扫描的包-->

<context:component-scan base-package="com.wjy.demo"/>

</beans>

在类上使用注解

@Component //表示该类交于spring容器创建。前提:该类能被spring扫描到 value表示为该bean起名称。如果没有value属性 默认为类的首字母小写

public class Food implements IFood {

public void show() {

System.out.println("food1~~~~~~~~~~~~~~~~~~~~~~

标签:事务,--,Spring,笔记,int,bean,spring,public
From: https://blog.csdn.net/m0_74194490/article/details/140429356

相关文章

  • day03-Docker
    Docker实用篇javajdkmysqlmaven…0.学习目标什么是镜像?了解镜像操作(重点)容器操作(重点)数据卷操作(重点)查看、进入、操作文件、挂载自定义镜像(重点)集群部署微服务镜像仓库(了解)1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来......
  • 【Bean的作用域】
    1.Spring中bean的多种作用域在默认情况下,Spring应用上下文中所有的bean都是以单例(singleton)的形式创建的,即不管给定的一个bean被注入到其他bean多少次,每次所注入的都是同一个实例。Spring定义了多种作用域,可以基于这些作用域创建bean:单例(Singleton):在整个应用中,只创......
  • JavaScript基础第一弹学习笔记
    1.什么是JavaScript?        JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果2.作用①网页特效②表单验证③数据交互④服务端编程(就是node.js)3.JavaScript由什么组成?①ECMAScript:它规定了js基础语法核心知识。例如变量、分支语句、对象等②Web......
  • 微信小程序速通
    前言:参考文档微信开放文档一、起步首先注册小程序。然后下载微信开发者工具。1.注册小程序注册2.安装下载稳定版Stable,微信开发者工具3.获取AppId小程序管理登录,在菜单“开发”-“开发设置”看到小程序的AppID二、快速上手1.创建项目创建初始项目。2.......
  • flask 定时任务(APScheduler)使用current_app app_context()上下文
    前言:描述:flask定时任务调用的方法中使用了current_app.logger.info()记录日志报错 报错代码raiseRuntimeError(unbound_message)fromNoneRuntimeError:Workingoutsideofapplicationcontext.Thistypicallymeansthatyouattemptedtousefunctionality......
  • DirectX 修复工具对电脑有损害吗
    在解决电脑中与DirectX相关的问题时,DirectX修复工具常常成为我们的得力助手。然而,很多用户可能会产生这样的疑问:使用这类工具会不会对电脑造成损害呢?首先,需要明确的是,大多数正规且知名的DirectX修复工具本身并不会对电脑造成直接的损害。这些工具通常是经过严格的开发和......
  • 高频面试题-HTML
    严格模式head,body,Doctype他们的作用是什么?head标签中的元素主要用于描述文档的元信息,如文档的标题、字符集编码、外部资源的链接等。这些信息虽然不直接显示在页面上,但对于文档的结构、样式、行为等方面都有重要的影响。body标签里的内容构成了网页的主体,是用户浏览网页......
  • [windows 问题]误把资源管理器进程关闭导致的黑屏
    1.当在任务管理器页面把其中的资源管理器进程关闭,导致系统黑屏,但鼠标依旧可显示2.处于黑屏,在键盘上使用快捷键“Ctrl+Alt+Delete”,之后会出来一个关机/重启/任务管理器这么几个选项,用鼠标点击任务管理器,就会弹出任务管理器页面3.这时候点击运行新任务,在输入框里输入“explo......
  • 【花雕学编程】Arduino FOC 之双足无刷电机位置闭环控制
    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用ArduinoIDE(集成开发环境)来编写、......
  • 从零开始备战蓝桥杯——一天一个小算法第一天(排序篇)
    今天使我们学习算法的第一天,算法内容为冒泡排序和选择排序。冒泡排序思想:两两相邻数字排序,小的放在前面大的放在后面。从左往右遍历,不断重复第一步,这样可以永远保证大的在最后面重复上述操作,可以得到一个数组从小到大的排序。事例:假设我们有n个数字。第一次比较遍历全......