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的方式来构建项目

  • 创建maven项目
  • 定义项目的groupId、artifactId

  • 添加对应的pom依赖
  • 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的类型在查找对象的时候-在配置