spring_01介绍,搭建,概念,以及配置和属性注入

介绍

是一个贯穿整个项目的管理对象的容器

一站式框架

1.正是因为spring框架性质是属于容器的性质,容器中装什么对象就有什么功能所以
是一站式框架。

2.不仅不排斥其它框架,还能帮其它框架管理对象

3.aop支持

4.ioc思想 控制反转(Inversion of Control)

把创建对象的权利交给框架,是框架的重要特征,并非面向对象编程的专用术语。

包括
依赖注入(Dependency Injection,简称DI)

依赖查找(Dependency Lookup)。

IoC可以认为是一种全新的【设计模式】,但是理论和时间成熟相对较晚,

并没有包含在GoF中(java的23种设计模式)。

5.spring jdbc

6.aop事物

7.junit测试支持


搭建

1.导包

最基础的4个核心包

beans

context

core

expression

spring 使用的是Apache的日志包

com.springsource.org.apache.commons.logging-1.1.1.jar

老版本中,还需要:

com.springsource.org.apache.log4j-1.2.15.jar

2.创建类

3.创建xml配置文件 注册对象到容器

3.1文件位置任意 (建议src目录下)

3.2文件名任意建议applicationContext.xml

3.3约束引入

preferences=》xml=》xml catalog =》 add =》File System =》

spring=》 schema =》 beans =》 .xsd

key type: Schema location

key:加 / + .xsd

Design 右键Edit =》 add =》 xsi =》将自己添加的.xsd引入

4.注册对象到容器

5.测试

@Test
public void test(){

//1)获取容器
ConfigurableApplicationContext cac =
new ClassPathXmlApplicationContext("applicationContext");
//2)向容器“要”对象
User user = (User)cac.getBean("user");
//3)使用获取过来的对象
System.out.println(user);
//4)释放资源 关闭容器
cac.close();

}


概念

1.思想 IOC

di 依赖注入

注入方式: 构造方法 ,set方法注入,字段注入(不推荐)

注入类型: 基本类型 引用类型

2.BeanFactory & ApplicationContext

BeanFactory

spring的原始接口,针对原始接口实现类实现的功能较为单一

特点:每次获取对象的时候才创建对象(原因:当时的系统资源较小)

ApplicationContext

特点:每次容器启动时就会创建容器中配置的所有对象

提供了更多的功能


spring配置详解

1.bean 标签属性配置

id: 过去的方式 不可以重名,不可以有特殊符号
name:可以重名,可以有特殊符号,不推荐重名,没意义
class:包名.类名

2.三种对象创建方式

无参构造方法
静态工厂
手动创建,交给spring容器管理

package org.spring.domain;

public class UserFactory {

public static User createUser(){
System.out.println("静态工厂创建对象");
return new User();
}
}


实例工厂
类似静态工厂 (只是将public去掉然后在applicationContext.xml中配置:)


3.scope属性

singleton(默认值):单例对象,被标识为单例的对象在spring容器中只会存在一个实例

prototyp:多例原型,被标识为多例的对象,每次在获得才会创建对象,每次创建的都是新对象

request:web环境下,与request的生命周期一致

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

4.生命周期方法

init-method:出生方法,构造方法后调用

destory-method:销毁方法,容器关闭前调用

5.spring的模块化配置

所有的对象配置在一个配置文件中太多了,模块化配置:

在主配置文件中引入其他spring的配置文件:

6.srping属性注入

set方法注入

值类型属性:




对象属性:
ref="" 其他bean的name

构造函数注入

name属性:构造函数的参数名

index属性:构造函数的参数索引

type属性:构造函数的参数类型










p名称空间注入

1.导入p名称空间 xmlns:p="http://www.springframework.org/schema/p"

2.使用p:属性完成注入

|-值类型:p:属性名="值"

|-对象类型:p:属性名-ref="bean名称"

<bean name="emp" class="org.spring.Employee"

p:name="jack" p:age="20" p:dept-ref="admin" >

说明:p名称空间注入,走的还是set方法

spel注入

spring expression language

spel表达式 模仿el ognl表达式 如引用其他对象的值:




但是引用类型不可以使用spel表达式

7.复杂类型注入

array:


123
456


list:



123
456



map:






set:


123
456



properties:


com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/mybatis
root
123456

posted @ 2018-01-14 12:23  厨房有只偷吃的猫  阅读(168)  评论(0)    收藏  举报