Spring入门配置和DL依赖注入实现图解

 更新时间:2020年10月19日 10:40:55   作者:贝加尔湖畔╭  
这篇文章主要介绍了Spring入门配置和DL依赖注入实现图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、Spring入门配置

1.1、起别名

给项目起别名

!

1.2、import

导入其他xml

1.3、Bean的配置最重要的,又很多配置,我们先学一点

2、依赖注入(DL)

很重要

2.1、set注入

三种方式:

<?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
    https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="student" class="bing.pojo.Student">
  <!--  Set注入-->
  <property name="name" value="小冰"/>
<!--  引用注入,address-->
  <property name="address" ref="address"/>
<!--  数组注入-->
  <property name="advantages">
    <array>
      <value>帅</value>
      <value>情商高</value>
      <value>智慧</value>
      <value>沉稳</value>
      <value>有钱</value>
    </array>
  </property>
<!--  set-->
  <property name="course">
    <set>
      <value>赚钱</value>
      <value>情商</value>
      <value>心理学</value>
      <value>经济学</value>
      <value>哲学</value>
      <value>英语</value>
      <value>数学</value>
      <value>计算机</value>
    </set>
  </property>
<!--  map注入-->
<property name="grades">
  <map>
    <entry key="java" value="10000"/>
    <entry key="math" value="200"/>
    <entry key="English" value="300"/>
    <entry key="psychology" value="400"/>
  </map>
</property>
</bean>
  <bean id="address" class="bing.pojo.Address">
    <property name="address" value="大亳州"/>
  </bean>

</beans>

记住这些类型的注入就行了

2.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
    https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="bing.User">
<!--  第一种方式:通过index获取-->
  <constructor-arg index="0" value="bingbing"/>
</bean>

  <bean id="student" class="bing.Student">
<!--    方式二:通过key value-->
    <constructor-arg name="gender" value="小仙女"></constructor-arg>
    <constructor-arg name="age" value="19"/>
  </bean>

  <bean id="student2" class="bing.Student">
<!--    方式三:通过 类型获取,不推荐可能会出现歧义比如两个String-->
<!--    这里以及上面为什么使用全类名? 肯定用到了反射-->
    <constructor-arg type="java.lang.String" value="女"/>
    <constructor-arg type="int" value="18"/>
  </bean>

<bean id="teacher" class="bing.Teacher">
<!--  我们来试一下两个String类型会发生什么情况-->
  <constructor-arg type="java.lang.String" value="girl"/>
  <constructor-arg type="java.lang.String" value="刘老师"/>
</bean>

<!--  相当于new对象,对象名为person,只有这一个对象-->
  <bean id="person" class="bing.Person">

  </bean>

</beans>

注意:我们一般选用 key value注入,见名知意

2.3、拓展注入

为了简化我们可以引入p/c命名空间

使用方式:

<?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:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    https://www.springframework.org/schema/beans/spring-beans.xsd">

<!--  p,命名空间,p本质上是什么? 就是properties,可以给简单的属性命名,目的是为了简化-->
<bean id="user" class="bing.pojo.User" p:name="zhangsan" p:age="18">

</bean>
  <!--  c命名空间,怎么用? 是给constructor 构造器初始化的,这里就要求必须要有有参构造-->
  <bean id="user2" class="bing.pojo.User" c:name="bingbing" c:age="19" p:age="20"/>
</beans>

注意点:

使用前要导入:

xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"

类比:

p相当于标签:properties 其实就是set注入,不过可以简化简单的操作

c详单与 :constructor:就是用来给有参构造器初始化的

2.4、bean标签作用域

bean是什么?就是一个对象,也就是类的实例

我们可以给他设置单例模式等等

单例模式

<bean id="accountService" class="com.something.DefaultAccountService"/>

<!-- the following is equivalent, though redundant (singleton scope is the default) -->
<bean id="accountService" class="com.something.DefaultAccountService" scope="singleton"/>

原型模式

<bean id="accountService" class="com.something.DefaultAccountService" scope="prototype"/>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringCloud的@RefreshScope 注解你了解吗

    SpringCloud的@RefreshScope 注解你了解吗

    这篇文章主要介绍了Spring Cloud @RefreshScope 原理及使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • Java中空指针异常的几种解决方案

    Java中空指针异常的几种解决方案

    这篇文章主要介绍了Java中空指针异常的几种解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Spring注解@Resource和@Autowired区别对比详解

    Spring注解@Resource和@Autowired区别对比详解

    这篇文章主要介绍了Spring注解@Resource和@Autowired区别对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • spring boot 配置Filter过滤器的方法

    spring boot 配置Filter过滤器的方法

    本篇文章主要介绍了spring boot 配置Filter过滤器的方法,实例分析了spring boot 配置Filter过滤器的技巧,有兴趣的可以了解一下。
    2017-03-03
  • Java程序与C语言的区别浅析

    Java程序与C语言的区别浅析

    Java和C语言虽有相同性,但两者也有一定的不同。Java程序是面向对象的一种简单、分布式 、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言它是面向对象而C语言是面向过程的,这是最大的不同,对于学过C语言的我们来说,Java可以说是比较简单的编程语言
    2017-04-04
  • spring boot 利用注解实现权限验证的实现代码

    spring boot 利用注解实现权限验证的实现代码

    这篇文章主要介绍了spring boot 利用注解实现权限验证的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Java中equals方法使用及重写练习

    Java中equals方法使用及重写练习

    equals是在object类中的方法,在object中equals是用来看看两个参数是否引用的是同一个对象,下面这篇文章主要给大家介绍了关于Java中equals方法使用及重写练习的相关资料,需要的朋友可以参考下
    2023-05-05
  • Java创建多线程局域网聊天室实例

    Java创建多线程局域网聊天室实例

    这篇文章主要介绍了Java创建多线程局域网聊天室实例,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Spring扩展接口知识总结

    Spring扩展接口知识总结

    今天带大家学习Java Spring的相关知识,文中对Spring扩展接口作了非常详细的介绍及代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • 在IDEA中创建SpringBoot项目的详细步骤

    在IDEA中创建SpringBoot项目的详细步骤

    这篇文章主要给大家介绍了在IDEA中创建SpringBoot项目的详细步骤,文中有详细的图文介绍和代码示例,对大家的学习和工作有一定的帮助,需要的朋友可以参考下
    2023-09-09

最新评论