Spring的配置与使用

一、Spring的组成

    其中最核心的是Core Container核心容器

二、spring框架的作用:

  对于我目前了解的spring框架,其中一个作用是用来降低程序间的耦合度的,也就是降低程序间的依耐性。

IOC:inversion of control 控制反转-->即将app和资源分开,通过一个工厂来联系,将app中想要获得资源的控制权交给了工厂,所以叫做控制反转

  即对象的创建通过spring在读取配置文件(或进行注解扫描)时就进行创建(单例模式),而程序需要用到对象时就从spring容器中取,从而降低了两个程序间的依赖关系

DI:Dependency Injection 依赖注入-->在当前类需要用到其他类的对象,用spring为我们提供,我们只需要在配置文件中说明,依赖关系的维护:称为依赖注入

  即在创建了一个对象中含有另外一个类对象,此时就需要依靠spring框架给该对象进行对象实例的注入。以避免在该类中进行对象创建增加耦合度

  注入方式:

    使用构造函数提供:

      bean内部使用标签<constructor-arg>:

      
      index,name,type:都是指定赋值的对象
      value:是用于提供基本数据类型和String的数据
      ref:用于指定其他bean类型的数据.指bean容器中有的

    使用set方式提供:

      

      bean内部使用property标签:
      name:是set方法名称
      value:值

    使用注解提供:

      

      用于创建对象的注解:
        @Component:用于把当前类对象存入spring容器中 value属性指定id(默认为当前类名,首字母小写)
        @Controller(表现层),@Service(业务层),@Repository(持久层) 和Component注解的属性和作用一样,是spring框架对三层对象提供
      用于注入数据的注解:
        @Autowired:自动按照类型注入,只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功
          出现的位置:可以是变量上,也可以在方法上
          多个匹配时:会根据变量名称匹配id,若不匹配报错
        @Qualifier:在按照类型注入的基础之上再按照名称注入.在给类成员注入时不能单独使用,但在个方法参数注入时可以
          属性:value(注入的id)
        @Resource:直接按照bean的id注入
          属性:name(注入的id)
        以上三个都只能注入bean对象,基本类型和String类型无法使用上述注解实现
        集合:只能通过XML来注入

        @Value:用于注入基本类型和Stirng类型
          属性:value(用于指定值,可以用spring中的SpEl(也就是spring的el表达式))

 

转载于:https://www.cnblogs.com/LTBblogs/p/10864772.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新增或编辑保存时出错后,页面无法再次编辑

新增或编辑保存时出错后&#xff0c;页面无法再次编辑&#xff0c;除非关闭新增或编辑弹窗&#xff0c;重新打开新增或编辑页面&#xff0c;否则无法编辑 &#xff0c;如下图&#xff1a; 解决方案 在新增方法之前定义loading参数&#xff0c;在调用后台服务之前先使用loading…

选择日期保存后日期变成前一天(avue date)

1、问题&#xff1a;选中日期&#xff0c;保存&#xff0c;日期变成前一天 {label: 生产日期,prop: esDate,type: date,}, 2、解决&#xff1a;&#xff08;avue的官方文档&#xff09; {label: 生产日期,prop: esDate,type: date,valueFormat: yyyy-MM-dd}, 只需要加 value…

v-region 地址组件无法回显问题(选择地址保存后,打开编辑,发现刚才选择的地址【省市县乡】信息消失,信息不回显)

(Avue) 1、问题 v-region 地址组件无法回显(选择地址保存后&#xff0c;打开编辑&#xff0c;发现刚才选择的地址【省市县乡】信息消失&#xff0c;信息不回显) 选择好省市县乡后&#xff0c;保存&#xff0c;再次编辑&#xff0c;发现如下&#xff1a; 2、解决方案&#xff…

JavaScript中一个对象数组按照另一个数组排序

JavaScript中一个对象数组按照另一个数组排序 需求&#xff1a;排序 const arr1 [33, 11, 55, 22, 66];const arr2 [{age: 55}, {age: 22}, {age: 11}, {age: 66}, {age: 33}]数组arr2中每项都是一个对象&#xff0c;对象中age属性 数组arr1中的项将arr2数组根据对象的age值…

oracle mysql 常用语句(查询表中某字段有几种类型,及每种类型有多少个数、插入多行、查询前几行)

亲测有效 1、&#xff08;1&#xff09;查询表中某字段有几种类型&#xff0c;及每种类型有多少个数 select DISTINCT name user_name,count(*) num from patient GROUP BY name &#xff08;2&#xff09;查询表中某字段类型共有几种 select count(distinct name) from pat…

SQL中多表查询:左连接、右连接、内连接、全连接、交叉连接

一、左连接&#xff0c;右连接&#xff0c;内连接关系 左连接&#xff1a;左表全部两个表交集&#xff08;①②&#xff09; 右连接&#xff1a;右表全部两个表交集&#xff08;③②&#xff09; 内连接&#xff1a;两个表交集&#xff08;②&#xff09; 二、结合具体例子看…

ORA-00972: identifier is too long问题解决

报错 解决&#xff1a; 查看你写的是否有中文 如果有中文&#xff0c;看是否有引号将中文引起来&#xff0c;用引号引起来后不报错

Alter操作(修改列名,修改列数据类型,增加列,删除列,增加列且设为主键及对默认值操作)

一、mysql &#xff08;增加列&#xff0c;删除列&#xff0c;修改列&#xff1b;增加&#xff0c;删除&#xff0c;修改列的默认值&#xff09; 增加列&#xff0c;删除列&#xff0c;修改列 1、修改列的数据类型 alter table patient modify column mood int2、修改列名 …

马蜂窝推荐系统容灾缓存服务的设计与实现

数据库突然断开连接、第三方接口迟迟不返回结果、高峰期网络发生抖动...... 当程序突发异常时&#xff0c;我们的应用可以告诉调用方或者用户「对不起&#xff0c;服务器出了点问题」&#xff1b;或者找到更好的方式&#xff0c;达到提升用户体验的目的。 一、背景 用户在马蜂窝…

Vivado Bit文件压缩

前言 Vivado编译生成的Bit文件太大&#xff0c;想要小一点该咋办呢&#xff1f;那么就需要给bit文件瘦身。 流程 直接在约束文件xdc中添加下述语句即可&#xff1a; set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] 未压缩前 压缩后 根据工程不同&#xff0c;还…

Mac安装webpack报错gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1解决

安装webpack &#xff0c;报错提示 gyp ERR! configure error gyp ERR! stack Error: gyp failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/cnpm/node_modules/node-gyp/lib/configure.js:345:16) gyp ERR! stack a…

箭头函数用法

1.基本使用 2.参数和返回值 函数里只有一行代码 log没有返回值&#xff0c;所以是undefined 结果为 Hello Demo undefined 箭头函数&#xff1a; 在函数作为另外一个函数参数的时候&#xff0c;适合用箭头函数 3.箭头函数的this 返回值都是window 返回值&#xff0c;一…

云计算值得学习吗?云计算开发技术与应用未来工作前景

云计算技术的工作前景本人非常看好&#xff0c;其实已经不是我自己看好的事了&#xff0c;而是现在本来就已经很好很火了&#xff0c;在云计算的基础上又存生出大量其他产业链&#xff0c;归根结底还是云计算是前有技术的综合体&#xff0c;一会儿总结&#xff0c;那么工作前景…

路由的导航守卫

全局导航守卫 打印一下to&#xff0c;看是啥 meta 元数据&#xff08;描述数据的数据&#xff09; 3、路由独享的守卫 保留状态 keep-alive 保持组件不要频繁进行创建和销毁 activated deactivated 只有被保存了状态&#xff0c;使用了keep-alive时才起作用 和正则…

promise基础学习记录

sync 同步 async 异步 链式调用 有reject情况&#xff0c;直接进行到catch

Vuex状态管理方式

backend 前端 frontend 后端 getters mutations参数&#xff0c;有参数的情况&#xff0c;称为负载payload 参数不是一个的话&#xff0c;传对象的形式 提交&#xff0c;一个是通过commit&#xff0c;另外一个是type 这种情况下&#xff0c;count是一个对象&#xf…

MySQL(二)

MySQL连接管理 mysql 命令 -u 用户名-p 密码 例子&#xff1a; mysql -uroot -poldboy123 -h ip mysql -uroot -poldboy123 -hlocalhost -P3306 例子&#xff1a;mysql -uroot -poldboy123 -h 10.0.0.52 -P 3308 例子&#xff1a;mysql -uroot -poldboy123 -h 10.0.0.52 -P 330…

axios网络模块封装

网络测试 httpbin.org 发送普通的请求 get请求可以直接拼到URL后面 也可以将参数放到params对象中 axios发送并发请求 spread可以把值展开 数组的解构 对象的解构 axios配置信息相关 原始信息 defaults全局配置 使用全局的axios和对应的配置在进行网络请求 常见的…

Ubuntu 重置MySQL密码

1.重置密码的第一步就是跳过MySQL的密码认证过程&#xff0c;方法如下&#xff1a; vim /etc/my.cnf 在文档内搜索mysqld定位到[mysqld]文本段&#xff1a; /mysqld (在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密…

sendMessage 与 obtainMessage (sendToTarget)比较

我们平时在做到多线程问题的时候可能利用Handler去传递Message&#xff0c;其中&#xff0c;经常使用的就是1、new Handler().obtainMessage().sendToTarget();2、new Handler().sendMessage(new Message());第一种是直接传递what&#xff0c;obj等&#xff0c;msg的一些数据&a…