Spring IOC基本使用
1、spring_helloworld
##### (1)使用手动加载jar包的方式实现-分为三个步骤-现在几乎不用
commons-logging-1.2.jar spring-beans-5.2.3.RELEASE.jar spring-context-5.2.3.RELEASE.jar spring-core-5.2.3.RELEASE.jar spring-expression-5.2.3.RELEASE.jar
Person.java
``java
package com.oi.bean;public class Person { private int id; private String name; private int age; private String gender; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + ''' + ", age=" + age + ", gender='" + gender + ''' + '}'; }}
`
ioc.xml
SpringDemoTest.java
`java
package com.oi.test;import com.oi.bean.Person;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class SpringDemoTest { public static void main(String[] args) { //ApplicationContext:表示ioc容器 //ClassPathXmlApplicationContext:表示从当前classpath路径中获取xml文件的配置 //根据spring的配置文件来获取ioc容器对象 ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml"); Person person = (Person) context.getBean("person"); System.out.println(person); }}
`
##### (2)使用maven的方式来构建项目
定义项目的groupId、artifactId
pom.xml
`xml
4.0.0 com.oi spring_demo 1.0-SNAPSHOT org.springframework spring-context 5.2.3.RELEASE
`
Person.java
`java
package com.oi.bean;public class Person { private int id; private String name; private int age; private String gender; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + ''' + ", age=" + age + ", gender='" + gender + ''' + '}'; }}
`
MyTest.java
`java
import com.oi.bean.Person;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml"); Person person = (Person) context.getBean("person"); System.out.println(person); }}
`
总结:
以上两种方式创建spring的项目都是可以的-但是在现在的企业开发环境中使用更多的还是maven这样的方式-无须自己处理jar之间的依赖关系-也无须提前下载jar包-只需要配置相关的pom即可-因此推荐大家使用maven的方式-具体的maven操作大家可以看maven的详细操作文档。
搭建spring项目需要注意的点:
1、一定要将配置文件添加到类路径中-使用idea创建项目的时候要放在resource目录下
2、导包的时候别忘了commons-logging-1.2.jar包
细节点:
1、ApplicationContext就是IOC容器的接口-可以通过此对象获取容器中创建的对象
2、对象在Spring容器创建完成的时候就已经创建完成-不是需要用的时候才创建
3、对象在IOC容器中存储的时候都是单例的-如果需要多例需要修改属性
4、创建对象给属性赋值的时候是通过setter方法实现的
5、对象的属性是由setter/getter方法决定的-而不是定义的成员属性
2、spring对象的获取及属性赋值方式
##### 1、通过bean的id获取IOC容器中的对象(上面已经用过)
##### 2、通过bean的类型获取对象
MyTest.java
`java
import com.oi.bean.Person;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml"); Person bean = context.getBean(Person.class); System.out.println(bean); }}
`
注意:通过bean的类型在查找对象的时候-在配置