1、Spring创建对象的方式
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.lkb.pojo.User">
<property name="name" value="lkb"/>
</bean>
</beans>
- 测试类
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//在执行getBean的时候, user已经创建好了 , 通过无参构造
User user = (User) context.getBean("user");
//调用对象的方法 .
user.show();
}
结果可以发现,在调用show方法之前,User对象已经通过无参构造初始化了!
2.2、通过有参构造方式创建
1、UserT . java
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 );
}
}
2、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">
<!-- 第一种根据index参数下标设置 -->
<bean id="userT1" class="com.lkb.pojo.UserT">
<!-- index指构造方法 , 下标从0开始 -->
<constructor-arg index="0" value="lkb"/>
</bean>
<!--第二种根据参数名字设置 -->
<bean id="userT2" class="com.lkb.pojo.UserT">
<!-- name指参数名 -->
<constructor-arg name="name" value="lkb"/>
</bean>
<!--第三种根据参数类型设置(不推荐使用) -->
<bean id="userT3" class="com.lkb.pojo.UserT">
<constructor-arg type="java.lang.String" value="lkb"/>
</bean>
</beans>
3、测试
@Test
public void testT(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserT user = (UserT) context.getBean("userT");
user.show();
}
结论:在配置文件加载的时候。其中管理的对象都已经初始化了!
2、Spring配置
2.1、别名
<bean id="userT1" class="com.lkb.pojo.UserT">
<constructor-arg index="0" value="lkb"/>
</bean>
<!--alias 给bean创建别名-->
<alias name="userT1" alias="u1"/>
2.2、Bean的配置
<!--id:是bean的标识符,要唯一,如果没有配置id,name就是默认标识符,
如果配置id,又配置了name,那么name是别名
name可以设置多个别名,可以用逗号,分号,空格隔开
如果id和name都没配置,可以根据applicationContext.getBean(.class)获取对象;
-->
<bean id="userT2" class="com.lkb.pojo.UserT" name="u2,ut2">
<!-- name指参数名 -->
<constructor-arg name="name" value="lkb"/>
</bean>
id:是bean的标识符,要唯一,如果没有配置id,name就是默认标识符,如果配置id,又配置了name,那么name是别名
name:name相当于别名,可以设置多个别名,可以用逗号,分号,空格隔开
如果id和name都没配置,在读取Bean对象时,可以根据applicationContext.getBean(.class)获取对象;
2.3、import
import相当于对配置文件的合并,当我们有多个Spring配置文件时,可以通过import对配置文件进行合并,合并后Bean就可以相互调用了。
<import resource="{path}/beans.xml"/>
最后
感谢你看到这里,看完有什么的不懂的可以在评论区问我,觉得文章对你有帮助的话记得给我点个赞,每天都会分享java相关技术文章或行业资讯,欢迎大家关注和转发文章!