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  厨房有只偷吃的猫  阅读(183)  评论(0)    收藏  举报