1、对象创建方式
1.1 使用无参构造创建(默认方法)
- 创建一个类User.java
public class User {
private String name;
public User() {
System.out.println("user无参构造方法");
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+ name );
}
}
- 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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="com.kuang.pojo.User">
<property name="name" value="kuangshen"/>
</bean>
</beans>
- 测试
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//在执行getBean的时候, user已经创建好了 , 通过无参构造
User user = (User) context.getBean("user");
//调用对象的方法 .
user.show();
}
在调用show方法之前,User对象已经通过无参构造初始化了!
1.2 使用有参构造
- 创建一个类User.Tjava
public class UserT {
private String name;
public UserT(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+ name );
}
}
- 3种赋值方式
——下标赋值
<!-- 第1种根据index参数下标设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
<!-- index指构造方法 , 下标从0开始 -->
<constructor-arg index="0" value="kuangshen2"/>
</bean>
——类型赋值
**<!-- 第2种根据参数类型设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
<constructor-arg type="java.lang.String" value="kuangshen2"/>
</bean>**
基本类型直接用,引用类型要写全。假如类型存在相同报错,不推荐使用。
——参数名赋值
<!-- 第3种根据参数名字设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
<!-- name指参数名 -->
<constructor-arg name="name" value="kuangshen2"/>
</bean>
- 测试
@Test
public void testT(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserT user = (UserT) context.getBean("userT");
user.show();
}
2、Spring配置
(1)别名
- alias 为bean设置别名 , 可以设置多个。
<!--设置别名:在获取Bean的时候可以使用别名获取-->
<alias name="userT" alias="userNew"/>
(2)Bean的配置
- bean就是java对象,由Spring创建和管理;
- id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符;
- 如果配置id,又配置name,那么name是别名,name可设置多个别名,可以用逗号,分号,空格隔开;
- 如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象,class是bean的全限定名=包名+类名。
<bean id="hello" name="hello2 h2,h3;h4" class="com.kuang.pojo.Hello">
<property name="name" value="Spring"/>
</bean>
(3)import
- 用于团队合作开发时合并xml文件。
<import resource="{path}/beans.xml"/>