spring项目的创建
·
1.创建spring项目


2.添加spring配置文件
创建一个spring-config.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">
</beans>
3.创建、获取、使用bean对象

3.1 创建bean对象
public class User {
public void hello(String name){
System.out.println("你好"+name);
}
}
3.2 将bean对象添加进spring-config中
<?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对象储存到spring中,id可自定义,class=类名-->
<bean id="user" class="User"> </bean>
</beans>
3.3 获取并使用 Bean 对象(2种方法)
- ApplicationContext
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
- 启动类
*/
public class App {
public static void main(String[] args) {
//1.得到上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
//2.从spring中得到bean对象\并没有new对象\context.getBean("user")里面的字符串与spring-config.xml中要选择的bean标签里的id一致
User user= (User) context.getBean("user");
//3.使用bean对象
user.hello("世界");
}
}
- BeanFactory
public class App2 {
public static void main(String[] args) {
//1.得到上下文对象
BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
//2.从spring中得到bean对象\并没有new对象\beanFactory.getBean("user")里面的字符串与spring-config.xml中要选择的bean标签里的id一致
User user= (User) beanFactory.getBean("user");
//3.使用bean对象
user.hello("世界");
}
}
二者执行的结果都为:

4. ApplicationContext VS BeanFactory
- 都是Spring 容器的接⼝
- ApplicationContext 是 BeanFactory 的⼦类
- ApplicationContext 除了继承了 BeanFactory 的所有功能之外,还拥有其他的功能。
- ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象(去得到上下文的时候便会加载初始化)
- BeanFactory是需要那个才去加载那个(从spring中得到bean对象时才去加载)
相关演示:
创建两个bean对象
public class User {
public User(){
System.out.println("加载了user");
}
public void hello(String name){
System.out.println("你好"+name);
}
}
public class User2 {
public User2(){
System.out.println("加载了user2");
}
public void hello(String name){
System.out.println("你好2"+name);
}
}
将这两个bean对象都添加都spring配置文件中
<?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对象储存到spring中-->
<bean id="user" class="User"> </bean>
<bean id="user2" class="User2"> </bean>
</beans>
- 用ApplicationContext 获取bean对象

结论:⼀次性加载并初始化所有的 Bean 对象
- 用BeanFactory获取bean对象

发现 并未加载任何对象

当去得到某个对象时,才会加载这个对象,并且只会加载指定的某个对象
5. getBean ()的用法
public class User {
}
<bean id="user" class="User"> </bean>
- 名称id (需要强转类型)
上方则均使用此方法
User user= (User) context.getBean("user");
- 类型class获取 Bean
User user= context.getBean(User.class);
- 名称id + 类型class获取 Bean
User user= context.getBean("user",User.class);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)