码迷,mamicode.com
首页 > 编程语言 > 详细

spring配置与使用

时间:2019-05-11 21:51:42      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:路径   rop   windows   学习   int   绝对路径   默认值   window   depend   

一,关于spring概念的理解

1,spring可以看做是项目的管家,负责管理项目中的所有对象(包括web层,service层和dao层)。

2,spring一站式框架:spring跨年性质是属于容器性质的,它之所以能够处理请求,是因为容器中装了处理请求的对象,容器中装了什么对象它就具备什么功能,所以称之为一站式。

3,spring的核心是IOC反转控制和AOP面向切面

4,spring不排斥任何开源框架,并且能够帮助其他框架管理对象

 

spring中IOC和DI的概念

ioc 反转控制 就是将我们创建对象的方式反转了 以前对象的创建时由开发人员自己维护 包括依赖关系也是自己注入 学习spring之后 对象的创建以及依赖关系可以由spring完成创建和注入 反转控制也就是反转了对象的创建方式 从人们自己到由spring自己进行

di 比IOC概念要小一些 Dependency Injection 依赖注入
实现IOC思想 DI做支持

注入:set方法注入 构造方法注入 字段注入
注入类型:spring支持值类型和引用类型注入
值类型注入也就是 比如刚才的demo ,user中可以注入具体的名字或者年龄 也就相当于八大基本数据类型
引用类型注入:将依赖的对象注入 比如,将新建的address对象注入到user对象中
BeanFactory和ApplicationContext

BeanFactory接口:最底层的接口,是spring的最原始接口,针对原始接口的实现类,功能较为单一。 BeanFactory接口实现类的特点是,每次在获得对象时才会创建对象

ApplicationContext实现类:ApplicationContext实现类的特点是每次容器启动时就会创建容器中创建的所有对象,除此以外,它还提供了更加丰富的功能。典型的两个ApplicationContext的实现类为:ApplicationContex从类路径下加载配置文件ClassPathXmlApplicationContext . ApplicationContext从硬盘绝对路径下加载配置文件FileSystemXmlApplicationContext 。 在单机情况下通常使用ClassPathXmlApplicationContext . 若使用后者,在硬盘绝对路径下加载,则需要在后面加上括号指明文件的具体路径。

结论上来说:在将来web开发中,使用applicationContext完成,而在资源匮乏的环境中可以使用BeanFactory(资源匮乏:如在手机上)

二,spring搭建步骤

1,导包

spring首先导入四个基本包

 

日志包

 

总包

 

2,创建一个对象让spring装,

创建一个bean包,并在这个包中创建user.java(也就是Javabean),并且创建属性,也就是创建了对象

 

3,在src中书写配置,注册对象到容器,书写xml文件,applicationContext.xml放在src下(这个文件的本身位置是任意的,名字也是任意的,只是建议这样书写)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">

<bean  name="user" class="cn.itcast.bean.User" ></bean>

<beans>

 4,约束引入,在Windows下面的属性中选择cata,如下图操作


然后将user对象交给spring容器处理

5,接下来进行代码测试,编写测试类代码Demo.java

               

package cn.itcast.a_hello;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import cn.itcast.bean.User;


public class Demo {
@Test
public void fun1(){

//1 创建容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//2 向容器"要"user对象
User u = (User) ac.getBean("user");
//3 打印user对象
System.out.println(u);


}

}

三,spring配置详解

1,ApplicationContext.xml中bean元素相关配置各个标签的作用

bean元素:使用该元素描述spring容器管理的对象

name属性:给被管理的对象起个名字,获得对象是根据名称获得对象

class属性:被管理对象的完整类名

ID属性:与name属性一模一样,关于ID的话,名称不可重复,不能使用特殊字符;name属性名称则可以重复,可以使用特殊字符。结论:尽量使用name属性。

1.1 Bean元素的进阶,scope属性(重点是singleton和prototype):

一般情况下是使用singleton,但是要整合struts2时则要在ActionBean中使用prototype。而request和session属性基本上是用不到的。

singleton(默认值):单例对象,所谓单例对象,就是在spring容器中只会存在一个的实例

prototype属性:多例原型被标记为多例的对象,每次再获得才会创建并且每次创建都是新的对象

 

request: web环境下,对象与request生命周期一致,也就是每当请求处理完一次,对象将从spring容器中移除

session:web环境下,对象与session生命周期一致

1.2 Bean元素的进阶,生命周期属性(了解)

生命周期属性,配置一个方法作为生命周期初始化方法,spring会在对象创建之后立即调用(init-method)。也可以配置一个对象作为销毁方法,spring在关闭并销毁所有容器中的对象之前调用(destory-method)

2,三种对象创建方式

创建方式一:空参构造创建(重点)

配置文件

 

然后只需在demo.java中编写测试类

 

创建方式二:静态工厂创建(了解)

配置:

调用UserFactory的createUser方法创建名为user2的对象.放入容器

<bean  name="user2" 
class="cn.itcast.b_create.UserFactory" 

factory-method="createUser" ></bean>

userFactory.Java工厂如下:

 

最后编写测试类

 

创建方式三:实例工厂创建(了解)

实例工厂创建和静态工厂创建类似,只是在userFactory.java中,静态工厂使用了static 而实例工厂没有使用static。静态工厂可以直接使用类名完成各项功能的实现,而实例工厂则需要有固定的对象,才可以完成功能的实现。

配置文件:

调用UserFactory对象的createUser2方法创建名为user3的对象.放入容器

 

UserFactory.java中工厂的编写

 

接下来就是测试类,测试类同静态方法创建一样。

3, spring的模块化配置

分模块配置,随着项目的开发,文件越来越多,可能吧所有对象都放一个配置文件里面太多,于是可以再一个主配置文件中引入其他配置文件,导入其他配置文件关键词:<import resource="分配置文件的所在路径">

 

4,spring属性注入(set方式)

spring属性注入方式一共有四种:set方法注入;构造函数注入;p名称空间注入;spel注入;其中后两种作为了解,前两种作为掌握。

4.1  set方式注入,以下为其在配置文件中的操作,具体还需建立user和car的bean。并得到他们的get set 以及toString方法

4.2构造函数注入

4.3,p名称空间注入(可以简化property那种繁琐的注入)

4.4,spel注入(Spring Expression Language 也就是Spring表达式语言)

spring配置与使用

标签:路径   rop   windows   学习   int   绝对路径   默认值   window   depend   

原文地址:https://www.cnblogs.com/319064057-lx/p/10849860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!