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

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

(0)

相关推荐

  • SpringBoot集成Druid监控页面最小化配置操作

    在项目中使用阿里的druid连接池,pom文件配置: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId&g

  • springboot配置嵌入式servlet容器的方法

    配置嵌入式Servlet容器 springboot默认tomcat为嵌入式servlet容器,所以不用在配置tomcat. 1.如何定制修改servlet容器? 1.在applicatio.properties里修改和server有关的配置(推荐) 如: server.tomcat server.tomcat.connection-timeout= 连接超时时间 server.tomcat.uri-encoding=UTF-8 修改编码 server.servlet.XXX 通用servlet容

  • Idea安装及涉及springboot详细配置的图文教程

    一.安装 1.1 环境配置 idea环境的配置,如果环境有问题,删除文件夹,重新启动 1.2 激活 1.3 常用设置 1.3.1 JDK 退到初始界面 1.3.2 主题,窗体.菜单字体大小 1.3.2 鼠标滑轮修改字体大小 1.3.3 编码 1.3.4 自动编译(idea是默认不勾中的) 1.3.5 快捷键(我还是用eclipse的) 1.3.6 Maven配置 1.3.6.1不会自动关联,都配置上 1.3.6.2自动更新依赖到项目,自动下载源码和文档 1.3.6.3 Maven没提示,更新本地

  • 基于SpringBoot bootstrap.yml配置未生效的解决

    我就废话不多说了,大家还是直接看代码吧~ <!--需要引入该jar才能使bootstrap配置文件生效--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId> </dependency> 补充知识:SpringBoot不读取bootstrap.yml/properti

  • IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)

    第一步: 修改file->settings->compiler->build project automatically 第二步: 按ctrl+shift+a,搜索Registry双击进去,点击面板搜索running,勾选下面的值: 代码的热加载可以使用spring-boot-devtools,百度下就有很多,个人感觉不好用,修改代码需要重启项目,很烦,非常鸡肋,所以我不用,哈哈哈- 补充知识:idea实现修改html等springboot下static目录静态资源重新加载 对于前后端不

  • springCloud config本地配置操作

    一般很多项目不是在springcloud的环境中使用的,但是需要用到分布式配置中心来管理一些外部或者项目的配置,这个时候我们可以使用springcloud-config的本地配置. 配置config-server服务端 使用start.spring.io创建一个springcloud工程,pom中引入: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-c

  • Springboot打包部署修改配置文件的方法

    一般情况下SpringBoot以Jar包的形式进行打包 打包 - jar包方式 1.pom文件引入插件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </bu

  • IntelliJ IDEA 的 Spring 项目如何查看 @Value 的配置和值(方法详解)

    当你打开项目或者项目中的文件的时候,如果你有 Spring 的 Value 的配置,Intellij 将会自动将参数替换为值. 如果你单击上面的值,那么这个配置参数将会显示为配置的参数名. 如果你还想显示值的话,你需要重新打开这个文件或者项目. 有没有什么快捷键可以快速进行切换. 快捷键 这个配置是在 Intellij 的 Code > Folding 中进行配置的. 快捷键是是 Ctrl + NumberPad + 快捷键是是 Ctrl + NumberPad - NumberPad +,这个

  • 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

  • spring IOC中三种依赖注入方式

    一.Spring IOC(依赖注入的三种方式): 1.Setter方法注入. 2.构造方法注入. 使用构造方法,注入bean值. 关键代码: public UserServiceImpl(UserDao dao) { this.dao=dao; } <bean id="service" class="service.impl.UserServiceImpl"> <constructor-arg><ref bean="dao&q

  • 深入解析Java的Spring框架中bean的依赖注入

    每一个基于java的应用程序都有一个共同工作来展示给用户看到的内容作为工作的应用几个对象.当编写一个复杂的Java应用程序,应用程序类应该尽可能独立其他Java类来增加重复使用这些类,并独立于其他类别的测试它们,而这样做单元测试的可能性.依赖注入(或有时称为布线)有助于粘合这些类在一起,同时保持他们的独立. 考虑有其中有一个文本编辑器组件的应用程序,要提供拼写检查.标准的代码将看起来像这样: public class TextEditor { private SpellChecker spell

  • spring中IOC控制反转依赖注入和new对象的区别说明

    目录 IOC控制反转依赖注入和new对象的区别 new对象 依赖注入 spring的IOC容器比New对象究竟好在哪 IOC控制反转依赖注入和new对象的区别 spring默认是单例模式的,依赖注入其中操作的都是一个对象 new对象 单例中如果要做到注入的效果就是在类的头部进行实例化对象,这个时候该对象不管使用与否都贯穿该类的始终.该类对象不被回收,这个实例化对象也不会被回收,因为存在引用状态.如果要使用多例对象则最好使用new创建对象而不是依赖注入,即使依赖注入有多例模式也不推荐. 依赖注入:

  • 使用Spring自定义实现IOC和依赖注入(注解方式)

    目录 大致思路: 注解实现方式: xml实现方式: 1. 引入相关jar 2. 定义注解类ExtService是注解类的, ExtResource是注解属性的 3.定义一个借口 4. 接口和使用注解的实现类 5. 自定义实现ClassPathXmlApplicationContext 6.测试 7. 结果 8. 工具类 大致思路: 注解实现方式: 就是用 反射机制. 获取指定的包下使用了注解的类,存储在一个map容器, 然后获取map容器下类的属性, 利用反射给使用了注解的属性赋值对象. xml

  • 详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理

    一.spring依赖注入使用方式 @Autowired是spring框架提供的实现依赖注入的注解,主要支持在set方法,field,构造函数中完成bean注入,注入方式为通过类型查找bean,即byType的,如果存在多个同一类型的bean,则使用@Qualifier来指定注入哪个beanName的bean. 与JDK的@Resource的区别:@Resource是基于bean的名字,即beanName,来从spring的IOC容器查找bean注入的,而@Autowried是基于类型byType

  • ABP框架的基础配置及依赖注入讲解

    配置ABP 配置是通过在自己模块的PreInitialize方法中来实现的 代码示例如下: public class SimpleTaskSystemModule : AbpModule { public override void PreInitialize() { //在你的应用中添加语言包,这个是英语和作者的土耳其语. Configuration.Localization.Languages.Add(new LanguageInfo("en", "English&quo

  • Spring入门到精通之Bean标签详解

    目录 Bean标签基本配置 Bean标签范围配置 Bean生命周期配置 Bean的依赖注入入门 Bean的依赖注入概念 Bean的依赖注入方式 Bean的依赖注入的数据类型 引入其他配置文件(分模块开发) Bean标签基本配置 用于配置对象交由Spring 来创建. 默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功. 基本属性: id:Bean实例在Spring容器中的唯一标识 class:Bean的全限定名称 Bean标签范围配置 scope:指对象的作用范围,取值如

  • 200行Java代码如何实现依赖注入框架详解

    依赖注入介绍 先回顾下依赖注入的概念: 我们常提起的依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念.具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例.但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为

  • 详解Spring中bean的几种注入方式

    首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入.依赖注入是指:让调用类对某一接口的实现类的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖. Spring容器中支持的依赖注入方式主要有属性注入.构造函数注入.工厂方法注入.接下来将为大家详细介绍这三种依赖注入的方式以及它们的具体配置方法. 1.属性注入 属性注入即通过setXXX( )方法注入bean的属性值或依赖对象.由于属性注入方式具有可选择性和灵活性高的特点,因此它也是实际开发中最常用的注入方式

随机推荐