Spring配置

Posted 谏书稀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring配置相关的知识,希望对你有一定的参考价值。

一、ioc配置

1、配置pom.xml

<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>5.3.7</version>
	</dependency>
</dependencies>

2、控制反转 IOC(Inversion of Control)

  • 控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现方式是依赖注入(Dependency Injection,DI).
  • 之前代码编写耦合性太高,增加一个业务,就需要程序员修改代码,用户才能调用到业务,这种每次变动都需要修改大量代码,这种设计耦合性太高,牵一发而动全身。
  • 通过Set接口的注入,程序不再具有主动性,而是变成了被动的接受对象

3、配置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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--使用Spring来创建对象-->
    <bean id="hello" class="com.zhu.pojo.Hello">
        <property name="str" value="Spring">
        </property>
    </bean>
</beans>

使用Spring来创建对象,在Spring中这些都称为Bean

类型 变量名=new 类型

Hello hello = new Hello()

id = 变量名

class = new 的对象;

property 相当于给对象的属性设置一个值

4、IOC创建对象的方式

  1. 下标赋值

    <!--第一种 下标赋值-->
     <bean id="user" class="com.zhu.pojo.User">
         <constructor-arg index="0" value="zhu"/>
    </bean>
    
  2. 通过类型创建

    <!--第二种 通过类型创建 不建议使用-->
    <bean id="user" class="com.zhu.pojo.User">
    	<constructor-arg type="java.lang.String" value="zhu"></constructor-arg>
    </bean>
    
  3. sh

    <!--第三种 直接通过参数名来设置-->
    <bean id="user" class="com.zhu.pojo.User">
    	<constructor-arg name="name" value="zhu"/>
    </bean>
    	<bean id="userT" class="com.zhu.pojo.UserT">
    </bean>
    

二、Spring配置

1.别名

如果添加了别名,就可以使用别名获取到这个对象

<alias name="user" alias="userNew"></alias>

2.Bean的配置

  • d:bean的唯一标识符,相当于对象名

  • class:bean对象所对应的全限定名:包名+类型

  • name:对象别名,可以同时取多个别名

<bean id="user" class="com.zhu.pojo.User" name="user1,user2"></bean>

3.import

import可以将多个beans.xml合并到一起,导入到allpicationContext.xml中。

<import resource="beans1.xml"></import>
<import resource="beans2.xml"></import>
<import resource="beans3.xml"></import>

使用的时候,直接使用总的配置就好了。

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("allpicationContext.xmll");

以上是关于Spring配置的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

Spring boot:thymeleaf 没有正确渲染片段

spring有使用catch做逻辑判断

What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段