Spring中的IOC
下面我们将要来看一下如何使用IOC容器,帮助大家更好的体会spring的优势。
1、使用手动加载jar包的方式实现
分为三个步骤(现在几乎不用)
(1)导包:导入这五个包即可。
-commons-logging-1.2.jar
-spring-beans-5.2.8.RELEASE.jar
-spring-context-5.2.8.RELEASE.jar
-spring-core-5.2.8.RELEASE.jar
-spring-expression-5.2.8.RELEASE.jar
由于导包有点麻烦,在这里简单说一下,已经导包的朋友可以略过~~~~
我们先来到Spring的官网,找到Spring Framework,找一个版本,点击Reference Doc.进去。
点进去之后改网址的版本号,随意改一个比较旧一点的版本,我就改成4.3.9吧
就进入这样的页面
点击html进入下面的页面。
进入以上页面,再点击Distribution Zip Files进入新页面。
在点击网址进入新页面。
再选择版本下载。
点击便自动下载。
好~~~~~~~~~~~~到这里我们已经下载好jar包,选择上述5个jar包即可。
点击Project Structure…
这时候便成功导进jar包了
(2)写配置
先建Java项目。
文件目录如下:
附上代码:
Person.java
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 int getAge() {
return age;
}
public String getGender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
这个ioc的文件创建步骤如下:
(需要先导包)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
ioc.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">
<bean id="person" class="com.xxxxx.bean.Person">
<property name="id" value="1"></property>
<property name="name" value="zhangsan"></property>
<property name="age" value="20"></property>
<property name="gender" value="male"></property>
</bean>
</beans>
(3)测试
MyTest.java
package com.xxxxx.test;
import com.xxxxx.bean.Person;
import javafx.application.Application;
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);
}
}
输出结果:
2、使用maven的方式来构建项目
一共4个步骤:
先下载Maven,这里也简单说一下如何在IDEA设置Maven…设置好的朋友可以略过~~~~~~~~~~~~~~~~~
进入Settings…设置。
(1)创建maven项目
-定义项目的groupId、artifactId
文件目录如下:
(2)添加对应的pom依赖
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxxxx</groupId>
<artifactId>spring_study2</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
</dependencies>
</project>
(3)编写代码
Person.java
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 int getAge() {
return age;
}
public String getGender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
(4)测试
MyTest.java
import com.xxxxx.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=context.getBean("person",Person.class);
System.out.println(person);
}
}
输出结果:
总结:
以上两种方式创建spring的项目都是可以的,但是在现在的企业开发环境中使用更多的还是maven这样的方式,无须自己处理jar之间的依赖关系,也无须提前下载jar包,只需要配置相关的pom即可,因此推荐大家使用maven的方式,具体的maven操作大家可以看maven的详细操作文档。
搭建spring项目需要注意的点:
1、使用maven时一定要将配置文件添加到类路径中,使用idea创建项目的时候要放在resource目录下
2、导包的时候别忘了commons-logging-1.2.jar包
细节点:
1、ApplicationContext就是IOC容器的接口,可以通过此对象获取容器中创建的对象。
2、对象在Spring容器中默认是在容器创建完成的时候就已经创建完成,不是需要用的时候才创建(此种情况满足的是单例模式)。
3、对象在IOC容器中存储的时候都是单例的(默认的),如果需要多例需要修改属性(scope=“prototype”)。
4、创建对象给属性赋值的时候是通过setter方法实现的。
5、对象的属性是由setter/getter方法决定的,而不是定义的成员属性。