Spring具有两个最基本的功能
在Java中对象也叫做Bean
public class User {
public void sayHi(String name) {
System.out.println("hello:" + name);
}
}
我们需要在项目的resources中添加Spring的配置文件spring-config.xml,Spring配置文件中的内容是固定的,如下所示:
<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 http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
beans>
接下来将要存入容器的Bean对象写入xml中
作用:告诉Spring在启动加载的时候,捎上这个Bean对象,将Bean对象存入容器中
<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 http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<bean id="user" class="User">bean>
beans>
注入Bean对象中的 id属性就类似于IP的域名,而class属性就类似点分十进制的IP,因为在class属性是“包名+类名”,在实际项目中包会非常多,对程序员不友好,因此使用id属性就相当于给这个Bean对象取了个别名。
public class App {
public static void main(String[] args) {
//1. 得到Spring的上下文对象,需要写上Spring配置信息的名称
ApplicationContext context =
new ClassPathXmlApplicationContext("spring-config.xml");
//2. 通过Spring对象,获取到Bean对象
//根据id属性来取Bean对象
User user = (User) context.getBean("user");
//3. 使用Bean对象
user.sayHi("张三");
}
}
上面是较优的写法,下面介绍的方法是过时的方法
BeanFactory beanFactory =
new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
面试题:ApplicationContext和BeanFactory的区别
User user = context.getBean(User.class);
可能出现的问题
User user = context.getBean("user", User.class);