框架入门操作"/>
Spring框架入门操作
学了几个框架之后,学习Spring框架的时候就很简单了,这篇博客先说一下spring框架的操作步骤,他的IOC、DI、AOP在以后的文章中再分享。
如何创建一个spring工程,请大家耐心操作。
1.导入jar包
在一个maven工程中的pom.xml文件中导入
spring-core spring-beans spring-context commons-logging
<!-- .springframework/spring-core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.0.8.RELEASE</version></dependency><!-- .springframework/spring-beans --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.0.8.RELEASE</version></dependency><!-- .springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.8.RELEASE</version></dependency><!-- --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency>
2.创建spring的配置文件
在resources包下创建.xml文件
文件头如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""xmlns:xsi=""xmlns:mvc=""xmlns:context=""xmlns:mc=""xsi:schemaLocation="://www.springframework/schema/beans/spring-beans.xsd://www.springframework/schema/context/spring-context.xsd://www.springframework/schema/mvc/spring-mvc.xsd">
</beans>
3.使用spring容器获取对象
创建一个实体类
package com.jie;public class HelloWorld {private String name;private int age;private String address;public void sayHello(){System.out.println("Hello World!!!!");}public HelloWorld(String name, int age) {this.name = name;this.age = age;}public HelloWorld(String name, int age,String address) {this.name = name;this.age = age;this.address=address;}public void setAddress(String address) {this.address = address;}public String getAddress() {return address;}public void setName(String name) {this.name = name;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}public HelloWorld() {}
}
在.xml文件中配置
<!--
id 当前类的名字 唯一的 不可重复
class 类的全限定名称
scorp 默认:singleton(单例模式) prototype多例模式 request session
--><bean class="com.jie.HelloWorld" name="helloWorld2 world hello" id="helloWorld" scope="prototype"></bean><bean id="hw" class="com.jie.HelloWorld" scope="prototype">
<!--property 给指定属性赋值第一种方法:通过setter方法注入DI依赖注入--><!--<property name="name" value="浪子一秋"></property>--><!--<property name="age" value="21"></property>--><!--第二种方法:通过有参 !前提是要有有参构造函数index 通过参数的索引注入type 通过参数的类型注入--><!--<constructor-arg index="0" value="一叶知秋"></constructor-arg>--><!--<constructor-arg index="1" value="22"></constructor-arg>--><!--经过测试,这个是按照类型顺序赋值--><constructor-arg type="int" value="111"></constructor-arg><constructor-arg type="java.lang.String" value="啧啧啧"></constructor-arg><constructor-arg type="java.lang.String" value="郑州"></constructor-arg></bean>
上面的两个bean配置的是同一个类,是为了后年的测试,里面的测试不再单独写了,不明白的再问
测试类
/**
* Spring IOC 控制反转 控制权的反向转移
* 原来:谁用水创建 new 类名();
* 现在:提前创建好所需要的对象,当使用时,不是自己创建,而是从容器中获取对象
*
* 使用步骤:
* 1.导入jar包 spring-core spring-beans spring-context commons-logging
* 2.创建spring的配置文件
* 3.使用spring容器获取对象
*
* 类 :单例模式 多例模式
* 默认情况下是单例模式
* 在配置文件中可以设置为其他模式
*
* DI依赖注入
* 原始:通过有参构造直接给属性赋值 或者是通过无参+set方法赋值
* 现在:spring容器中
*/
package com.jie;import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestHello {@Testpublic void test1(){//谁使用,谁创建HelloWorld world=new HelloWorld();HelloWorld world1=new HelloWorld();System.out.println(world);//com.jie.HelloWorld@2077d4deSystem.out.println(world1);//com.jie.HelloWorld@7591083d//不同对象world.sayHello();}@Testpublic void test2(){//spring 从spring容器中获取对象//读取spring配置文件,创建bean工厂BeanFactory factory=new ClassPathXmlApplicationContext("/applicationContext.xml");//从bean工厂中获取bean对象//通过id查找HelloWorld world=(HelloWorld)factory.getBean("helloWorld");HelloWorld world1=(HelloWorld)factory.getBean("helloWorld");//通过类型得到对象//HelloWorld world2=factory.getBean(HelloWorld.class);//通过name查找HelloWorld world3=(HelloWorld)factory.getBean("helloWorld2");//通过id+类查找(官方推荐)HelloWorld world4=factory.getBean("hw",HelloWorld.class);System.out.println(world);//com.jie.HelloWorld@5a1c0542System.out.println(world1);//com.jie.HelloWorld@5a1c0542//同一个对象 推断为单例模式world.sayHello();}
}
更多推荐
Spring框架入门操作
发布评论