1、bean
<bean id="banana" class="com.packet.pojo.Banana" name="user1,user2 user3;user4"/>
-
这个bean就是一个类被Spring托管的
-
记不住的话pojo中的javabean懂吧,它也是个类,你也这么记住,偷偷的认为是Spring创建了这个对象(javabean----->bean)
-
-
id表示bean的唯一标识符
-
创建对象的时候都 Banana banana = new Banana(),就相当于new出对象的名字
-
-
class表示来源,来自于哪个包
-
name是取别名
-
很随意,上述取了一次性三个别名,可以是逗号,空格**,分号**都行
-
-
以上都是自闭合的
=========================================================================
<bean id="apple" class="com.packet.pojo.Apple" />
<bean id="banana" class="com.packet.pojo.Banana"/>
<bean id="User" class="com.packet.pojo.User">
<property name="name" value="皮夹子"/>
<property name="sex" value="男"/>
<property name="age" value="18"/>
<property name="apple" ref="apple"/>
<property name="banana" ref="banana"/>
</bean>
public class User {
private String name;
private String sex;
private int age;
private Apple apple;
private Banana banana;
}
-
property表示属性
-
name是对应类中的字段名
-
value是设置字段名的值【普通字段】
-
ref表示是对象,需要先将所属的对象先交给spring托管
=========================================================================
构造器注入
<bean id="User" class="com.packet.pojo.User">
<constructor-arg index="0" value="皮夹子"/>
<constructor-arg type="java.lang.String" value="男"/>
<constructor-arg name="age" value="18"/>
</bean>
表示分别通过下标、类型、名字------>了解就行
2、alias
<alias name="banana" alias="adfhasdkfa"/>
-
取别名 ,将banana取名为adfhasdkfa
3、import
一般用于团队开发,可以将多个配置文件,导入合并为一个
-
例如:存在三个人开发
-
张三 --->applicationContext1.xml
-
李四 --->applicationContext2.xml
-
王五 --->applicationContext3.xml
-
-
使用的时候,直接使用总的配置
<import resource="applicationContext1.xml"/>
<import resource="applicationContext2.xml"/>
<import resource="applicationContext3.xml"/>
4、关于bean的其他注入方式
创建类User和类Banana
-
User类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private Apple apple;
private String[] food;
private List<String> books;
private Map<String,String> cards;
private Set<String> games;
private Properties properties;
private String IsMarried;
}
-
Apple类可以什么都不写哈
-
给User类配置
<bean id="Apple" class="com.packet.pojo.Apple" />
<bean id="User" class="com.packet.pojo.User">
<!-- 普通字段注入-->
<property name="name" value="皮夹子"/>
<!-- bean注入-->
<property name="apple" ref="Apple"/>
<!-- 数组注入-->
<property name="food">
<array>
<value>巧克力</value>
<value>薯片</value>
<value>牛奶</value>
<value>蛋糕</value>
</array>
</property>
<!-- List注入-->
<property name="books">
<list>
<value>斗破苍穹</value>
<value>斗罗大陆</value>
<value>遮天</value>
</list>
</property>
<!-- Map注入-->
<property name="cards">
<map>
<entry key="学号" value="21206126"/>
<entry key="姓名" value="皮夹子"/>
<entry key="身份证" value="000111202306061111"/>
</map>
</property>
<!-- set注入-->
<property name="games">
<set>
<value>王者荣耀</value>
<value>刺激战场</value>
<value>英雄联盟</value>
</set>
</property>
<!-- null注入-->
<property name="isMarried">
<null></null>
</property>
<!-- properties注入-->
<property name="properties">
<props>
<prop key="学号"></prop>
</props>
</property>
</bean>
-
编写测试类
public class MyTest {
@Test
public void test1(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("User");
System.out.println(user);
}
}
-
运行结果