Springioc的xml配置使用

首先我们用基于maven的spring项目来管理和构建Java项目。

springioc基于xml使用

maven项目结构如下图

首先我们要配置依赖,如果我们没有用maven需要导入jar包,这里用maven非常方便只需要在pom.xml配置文件里配置依赖就相当于导入jar包

首先第一步测试下环境是否可用

User类中内容

在spring-ioc.xml

创建测试类

用@Test注解进行测试

第一步加载spring上下文

输出User对象

输出成功证明maven成功安装完成

用@Test要导入junit依赖包

<scope>作用是编译的作用域默认是compile全作用域,test是在test里作用的不跟.class一起进行编译

springioc会把所有的bean(对象)都加载到ioc容器里在容器实例化(调用构造函数)

通过类来获取bean(对象)

通过id或者名字来获取bean(对象)

通过id和类型获取bean(对象)

<description>作用是用来描述一个bean(对象)是用来干嘛的

import如下面注解描述

设置Bean(对象)的别名方法如下(注意要来的名字也可以用如下面的id=user)

用@Before注解作用是每一个用@Test都会先调用@before里面的内容

使用nama也可以设置别名

基于setter方式来注入属性首先一定要在类里设置get和set方法,name=xxx的名字是根据setxx来决定的

基于构造函数的依赖注入(构造函数是有参的里面有几个参数下面值能设几个)

也可以不用加name来设置值但是有个弊端如果你调换赋值顺序会出现赋值错误的情况

解决方法可以把name在对应的加回来

还可以用index来解决如下图对应的参数是 0 1 2

还可以用type(根据类型来赋值但是有弊端如果有相同的类型就解决不了了)来解决

复杂数据类型的依赖注入先构建get set和tostring方法

此图是设置null值和空值的方法

在一个类中有类属性咋赋值的方法如下图(引用外部bean的方式)ref里要写对应要引用的id名字

使用内部bean依赖注入其他bean的方式

给list<string>赋值方法如下图,如果把<string>改成<对象>如<wife>就得把<value>改成<bean>

给map赋值方法

用p命名空间方法作用简化用set属性方式注入但是要是集合的话还是得用set注入的方法

使用c命名空间简化用构建方法的方式依赖注入

用来控制bean的执行顺序的方法用depends-on

懒加载用lazy-init="true"该bean(对象)就只能在用的时候在创建bean对象

让该xml文件中的bean都变成懒加载的方法

一个bean只能创建一次对象想创建两个或者多个的方法一个是把作用域该为prototype或者是创建多个不同id的bean

创建两个不同id的bean

改作用域方法

用静态方法实例化bean

使用实例化工厂方式实例化

根据类型(byType)来自动注入用autowire在Person类中有wife属性用了autowire就会自动在xml文件中找对应的wife就不用ref来引用了

但是出现多个id的时候就会出问题

用byName根据set方法名自动匹配,根据的是person里的setWife的名字

用constructor 根据构造器去匹配,根据构造函数的参数来匹配如下图wife,如果wife改了对应的this也需要改,xml里的id也需要改

如果构造函数参数变多,对应的bean也得相同变多

当根据类型匹配但是有多个相同类型不同id名时用primary可以优先用它

或者可以用auto-candidate来禁止这个bean自动注入

配置第三方bean

要配置第三方bean需要先在pom.xml里导入依赖如下图

调用测试类

引用外部属性资源文件方式

<context:property-placeholder location="db.properties"></context:property-placeholder>

先创建资源文件

文件内容

SpEL的使用

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值