spring所需的配置文件

2023-05-16

1、 beans.xml

<?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">

   <bean id="MysqlImpl" class="com.kuang.dao.impl.UserDaoMySqlImpl"/>
   <bean id="OracleImpl" class="com.kuang.dao.impl.UserDaoOracleImpl"/>

   <bean id="ServiceImpl" class="com.kuang.service.impl.UserServiceImpl">
       <!--注意: 这里的name并不是属性 , 而是set方法后面的那部分 , 首字母小写-->
       <!--引用另外一个bean , 不是用value 而是用 ref-->
       <property name="userDao" ref="OracleImpl"/><!--具体使用哪个接口这里可以直接配置-->
   </bean>

</beans>

此处的构造方式为无参构造并通过set方法注入
以下方法为有参构造

<!-- 第一种根据index参数下标设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
   <!-- index指构造方法 , 下标从0开始 -->
   <constructor-arg index="0" value="kuangshen2"/>
</bean>
<!-- 第二种根据参数名字设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
   <!-- name指参数名 -->
   <constructor-arg name="name" value="kuangshen2"/>
</bean>
<!-- 第三种根据参数类型设置(不推荐使用) -->
<bean id="userT" class="com.kuang.pojo.UserT">
   <constructor-arg type="java.lang.String" value="kuangshen2"/>
</bean>

2、spring中别名的配置
①alias 设置别名 , 为bean设置别名 , 可以设置多个别名

<!--设置别名:在获取Bean的时候可以使用别名获取-->
<alias name="userT" alias="userNew"/>

②bean中配置别名

<!--bean就是java对象,由Spring创建和管理-->

<!--
   id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符
   如果配置id,又配置了name,那么name是别名
   name可以设置多个别名,可以用逗号,分号,空格隔开
   如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;

class是bean的全限定名=包名+类名
-->
<bean id="hello" name="hello2 h2,h3;h4" class="com.kuang.pojo.Hello">
   <property name="name" value="Spring"/>
</bean>

3、bean的自动装配
Spring中bean有三种装配机制,分别是:
①在xml中显式配置;(xml中配置bean)
②在java中显式配置;(注解中配置)
③隐式的bean发现机制和自动装配。

Spring的自动装配需要从两个角度来实现,或者说是两个操作:

组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;
自动装配(autowiring):spring自动满足bean之间的依赖,也就是我们说的IoC/DI;
组件扫描和自动装配组合发挥巨大威力,使得显示的配置降低到最少。

byName
修改bean配置,增加一个属性 autowire=“byName”

<bean id="user" class="com.kuang.pojo.User" autowire="byName">
   <property name="str" value="qinjiang"/>
</bean>

byType
使用autowire byType首先需要保证:同一类型的对象,在spring容器中唯一。如果不唯一,会报不唯一的异常

<bean id="user" class="com.kuang.pojo.User" autowire="byType">
   <property name="str" value="qinjiang"/>
</bean>

当一个bean节点带有 autowire byName的属性时。

将查找其类中所有的set方法名,例如setCat,获得将set去掉并且首字母小写的字符串,即cat。
去spring容器中寻找是否有此字符串名称id的对象。
如果有,就取出注入;如果没有,就报空指针异常。

4、使用注解实现自动装配

1、在spring配置文件中引入context文件头

xmlns:context=“http://www.springframework.org/schema/context”

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd

2、开启属性注解支持!

<context:annotation-config/>

3、@Autowired是按类型自动转配的,不支持id匹配。
需要导入 spring-aop的包!

注解示例

public class User {
   @Autowired
   private Cat cat;
   @Autowired
   private Dog dog;
   private String str;

   public Cat getCat() {
       return cat;
  }
   public Dog getDog() {
       return dog;
  }
   public String getStr() {
       return str;
  }
}

配置文件此时如下

<context:annotation-config/>

<bean id="dog" class="com.kuang.pojo.Dog"/>
<bean id="cat" class="com.kuang.pojo.Cat"/>
<bean id="user" class="com.kuang.pojo.User"/>

注意:@Autowired(required=false) 说明:false,对象可以为null;true,对象必须存对象,不能为null。

除了@Autowired之外,还有@Qualifier和@Resource

@Autowired与@Resource异同:

1、@Autowired与@Resource都可以用来装配bean。都可以写在字段上,或写在setter方法上。

2、@Autowired默认按类型装配(属于spring规范),默认情况下必须要求依赖对象必须存在,如果要允许null
值,可以设置它的required属性为false,如:@Autowired(required=false)
,如果我们想使用名称装配可以结合@Qualifier注解进行使用

3、@Resource(属于J2EE复返),默认按照名称进行装配,名称可以通过name属性进行指定。如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

它们的作用相同都是用注解方式注入对象,但执行顺序不同。@Autowired先byType,@Resource先byName。

5、使用注解开发
想要使用注解形式,必须得要引入aop的包
在配置文件当中,还得要引入一个context约束

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

</beans>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring所需的配置文件 的相关文章

随机推荐

  • Ubuntu按装谷歌浏览器缺少包依赖

    1 首先去官网下载谷歌浏览器 https www google cn chrome 点击下载 选择接受并安装 点击确定 在下载里面找到自己刚下载的文件 然后点击终端打开 输入指令 sudo dpkg span class token ope
  • 【TC297的定时器模块】

    目录 前言1 高级定时器CCU62 通用定时器GTM3 通用定时器GPT12 前言 英飞凌TC297的定时器模块非常丰富 xff0c 分别有有系统定时器STM xff0c CCU6高级定时器 xff0c GTM通用定时器 xff0c GPT
  • ping不通的解决办法,简单有效

    场景 xff1a 笔记本电脑启动服务 xff0c 告诉前端IP端口 xff0c 提供测试 问题 xff1a 前端无法访问服务 xff0c 经过ping本机IP地址 xff08 ping是一个DOS命令 xff0c 一般用作检测网络通与不通
  • 08-Java框架-SpringBoot整合thymeleaf

    一 thymeleaf介绍 Thymeleaf 是新一代 Java 模板引擎 xff0c 与 Velocity FreeMarker 等传统 Java 模板引擎不同 xff0c Thymeleaf 支持 HTML 原型 xff0c 其文件后
  • (二)Linux 防火墙----网络防火墙,NET,firewalld

    文章目录 六 网络防火墙综合实验 xff1a 七 NAT2 SNAT3 DNAT xff08 重点 xff09 xff08 端口映射 xff0c 只能一对一 xff09 4 转发 xff08 端口重定向redirect xff09 重点 八
  • 内网渗透-内网穿透&猕猴桃抓密码提权&烂土豆提权

    一 SQL注入getshell 1 直接SQL语法写文件 xff08 1 xff09 Mysql导出函数 xff1a into outfile into dumpfile 可以写16进制写入 xff08 2 xff09 1290的安全性报错
  • windows10系统超全优化方法

    转自 xff1a 微点阅读 https www weidianyuedu com 度过了最初使用win10的各种不习惯 xff0c 解决了很多win10使用中的问题 今天微点阅读小编带大家看看 调教 win10的方法 xff01 希望对小伙
  • .gitignore配置

    经常在win和mac上切换开发环境 xff0c 导致从GitHub上拉代码 xff0c idea就要一直配置依赖等东西 xff0c 很多本地配置也被自动 后面发现是 gitignore 文件没有隐藏相关文件 xff0c 如下配置 xff1a
  • 机器学习算法——K-近邻算法(代码实现手写数字识别)

    0 引言 xff0c K 近邻算法是一种非常有效的分类算法 xff0c 它非常有效且易于掌握 原理 xff1a K 近邻算法通过计算不同样本之间的距离来分类物品 使用前 xff0c 我们需要有一个训练样本集 xff0c 并且样本集中每个数据
  • 在Linux上运行Windows软件的4种以上方法

    Linux has come a long way but you may still need to run Windows applications occasionally especially Windows only PC gam
  • 操作系统—概念与定义

    操作系统的概念和定义 1 1 操作系统的层次结构 操作系统OS Operating System 是指控制和管理整个计算机系统的硬件和软件资源 xff0c 并合理地组织调度计算机的工作和资源的分配 xff0c 提供用户和其他软件方便的接口和
  • Spring6全面详解

    Spring6全面详解 自2022年11月 xff0c Spring6正式发布 在Spring6中 xff0c 对于JDK的要求最低为 17 43 xff08 17 19 xff09 部分文本摘抄于尚硅谷视频 xff08 bilibili
  • 11.安装了双系统win7+ubuntu启动项改回windows的修复方法

    安装了双系统win7 43 ubuntu后直接默认进入ubuntu的启动项 xff0c 改回windows的启动项方法 xff1b 系统版本 xff1a ubuntu 19 04 64位 43 windows7 家庭普通版64位 一 Ubu
  • C++里面类和对象是什么意思?

    本文章向大家介绍C 43 43 类和对象到底是什么意思 xff1f xff0c 主要包括C 43 43 类和对象到底是什么意思 xff1f 使用实例 应用技巧 基本知识点总结和需要注意事项 xff0c 具有一定的参考价值 xff0c 需要的
  • 【ROS机器人入门】1.1 ROS概念及环境配置

    文章目录 ROS设计目标系统要求配置步骤1 设置安装源2 设置ROS软件Key3 更新软件包4 安装完整版ROS Noetic软件5 配置ROS环境6 安装构建依赖7 1 安装rosdep 7 1与7 2任选其一 解决方法 7 2 安装ro
  • VMware Ubuntu使用gparted工具扩容,显示Unable to resize read-only file system

    一 问题 出现提示 xff1a 无法调整只读文件系统的大小 xff0c 只能在挂载时调整文件系统的大小 二 解决步骤 第一步 xff1a 查看只读文件系统的详细信息 xff0c 点击Information 第二步 xff1a 查看该磁盘挂载
  • 持续集成持续部署 | Harbor私库的安装

    Docker安装 1 xff09 卸载旧版本 yum list installed grep docker 列出当前所有docker的包 yum y remove docker的包名称 卸载docker包 rm rf var lib doc
  • LibreOffice 设置为中文字体

    欢迎关注公众号 xff1a 通用代码技术 xff0c 欢迎访问 造梦网 学习优质的计算机知识 前言 在Manjaro或者Archlinux中安装完LibreOffice之后 xff0c 发现无法将其设置为中文字体 参考Wiki发现 xff0
  • 快速查找指定代码的四种方法

    前言 xff1a 在 核心工程逆向原理 中看到的 xff0c 记录一下 xff0c 所有流程都是以Hello World exe为例 正文 xff1a 1 代码执行法 注 xff1a 仅适用于被调试的代码量不大 且程序功能明确的情况 原理
  • spring所需的配置文件

    1 beans xml span class token prolog lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt span span class token tag spa