- 现在学习才刚刚起步,对于spring的理解就是spring是一个大管家,它几乎把所有东西都当成bean来管理,当程序中需要什么的时候,也就是程序依赖什么的时候,spring就把这些依赖给注入进去,程序不用再自己去通过类似new的方式获得依赖。(书上说,如果你发现自己还经常使用new的话,那么你对java就还掌握得不够)。
- 大部分时候,程序都是使用ApplicationContext作为spring容器,而不是使用他的父接口BeanFactory,下面是一个简单的例子。程序的结构是:
- 引入spring框架,然后写一个beans.xml作为配置文件,spring通过beans.xml就可以管理这些bean了,这里是在xml文件中声明了一个id为chinese,实现类为Person,并且传给参数,参数名称为test,值为孙悟空的bean。
- 要先写好Person类,毕竟人家是bean的实现类嘛,然后Person类还必须得有setTest,因为传入参数名字为test。
- 写一个测试类(这不废话嘛)
- 然后说一下在在idea中怎么创建spring项目
- 首先,下载一个idea终结版,社区版是不支持spring开发的
- follow me 让他静静的下载 然后写配置文件先
- 其他就没什么好注意的了 吧,接下来是代码的结构和讲解 结构
package service; //Person类,没啥好说 public class Person { public Person(){ System.out.println("正在执行无参构造器"); } public void setTest(String name){ System.out.println("正在调用setTest方法,传入的参数为" + name); } }
<?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--> <bean id="chinese" class="service.Person"> <property name="test" value="孙悟空"/> <!--然后因为Person类有setText方法嘛,所以这里给test赋值--> </bean> </beans>
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { public static void main(String []args){ // 测试类可以只用一行代码就可以了。 // ApplicationContext创建了spring容器,然后ApplicationContext会自动与初始化容器中的 // chineseBean,包括调用它的无参数的构造器,并且根据<property...>去执行你个setter方法 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); } } //运行之后可以看到 // 正在执行无参构造器 // 正在调用setTest方法,传入的参数为孙悟空
下面是手动创建spring容器,改为一下代码(都知道改哪里吧~~),这样操作的话是创建了sping容器,但是BeanFactory不会与预初始化容器中的Bean,这样一来就不会看到上边代码那样的输出,如果想自动创建spring容器但是不想预初始化bean的话,可以在bean元素下指定 lazy-init="true"让它不要预初始化,但是以BeanFactory来创建spring的话,就都不会预初始化的
<bean id="chinese" class="service.Person" lazy-init="true">
Resource resource = new ClassPathResource("beans.xml"); // 通过当前路径下的beans.xml文件来创建resourse对象 DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); // 创建默认的BeanFactory容器 new XmlBeanDefinitionReader(beanFactory).loadBeanDefinitions(resource); // 让BeanFactory容器加载配置文件
这是我看书后自己写的!!!!!!!!
Spring(2) 使用ApplicationContext
最新推荐文章于 2022-12-09 19:16:36 发布