Spring学习第二天
Spring通过有参构造获取对象
-
参数下标赋值
<bean id="user" class="cn.kuang.pojo.User"> <constructor-arg index="0" value="zheng"/> <constructor-arg index="1" value="13"/>
-
通过参数类型赋值(不推荐使用)
<bean id="user" class="cn.kuang.pojo.User"> <constructor-arg type="java.lang.String" value="郑智超"/> <constructor-arg type="int" value="32"/>
-
通过参数名来赋值
<bean id="user" class="cn.kuang.pojo.User"> <constructor-arg name="name" value="詹青云" /> <constructor-arg name="age" value="29"/></bean>
Spring的配置
- id:bean 的唯一标识符,也就是相当于我们学的对象名;
- class:bean 对象所对应的权限定类名:包名+类型;
- name:也就是别名,而且那么 可以同时取多个别名;
- import,一般用于团队开发使用,他可以将多个配置文件,导入合并为一个假如,现在项目中有多个人开发,单个人复制不荣的类开发,不同的类需要注册不荣的bean中,我们可以利用import将所有人的beans.xml合并为一个总的ApplicationContext。
依赖注入
-
构造器注入
-
set方式注入【重点】
依赖注入:set注入!
- 依赖: bean对象的创建依赖于容器
- 注入: bean对象中的所有属性,由容器来注入
<?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="address" class="com.kuang.pojo.Address"> <property name="address" value="绍兴"/> </bean> <bean id="student" class="com.kuang.pojo.Student"> <!--第一种,普通值注入--> <property name="name" value="zheng"/> <!--第二种,引用值注入--> <property name="address" ref="address"/> <!--第三种,集合注入--> <property name="books"> <array> <value>红楼梦</value> <value>资治通鉴</value> <value>三国</value> <value>金瓶梅</value> </array> </property> <!--第四种,List注入--> <property name="hobbies"> <list> <value>听音乐</value> <value>敲代码</value> </list> </property> <!--第五种,map注入--> <property name="cards"> <map> <entry value="身份证" key="303255555555"/> <entry value="银行卡" key="248975723497332978"/> </map> </property> <!--第六种,properties注入--> <property name="info"> <props> <prop key="url">百度</prop> <prop key="username">root</prop> <prop key="password">234234</prop> </props> </property> <!--第七种,set集合注入--> <property name="game"> <set> <value>王者荣耀</value> <value>天天象棋</value> </set> </property> <!--第八种,null值注入--> <property name="wife" > <value>null</value> </property> </bean> </beans>
-
拓展方式注入
我们可以使用p命名空间和c命名空间进行注入
官方解释:
- xmlns:p=“http://www.springframework.org/schema/p”
- xmlns:c=“http://www.springframework.org/schema/c”
注意事项:p命名和c命名空间不能直接使用,需要导入约束。