博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring_01介绍,搭建,概念,以及配置和属性注入
阅读量:5009 次
发布时间:2019-06-12

本文共 3744 字,大约阅读时间需要 12 分钟。

介绍

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

一站式框架

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名称"
说明: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

转载于:https://www.cnblogs.com/nm666/p/8282945.html

你可能感兴趣的文章
hdu-5894 hannnnah_j’s Biological Test(组合数学)
查看>>
scss常规用法
查看>>
css定位position属性深究
查看>>
android中不同版本兼容包的区别
查看>>
Static 与 new 的问题【待解决】
查看>>
xml
查看>>
在 mvc4 WebApi 中 json 的 跨域访问
查看>>
敏捷开发文章读后感
查看>>
xposed获取context 的方法
查看>>
html5 canvas 图像处理
查看>>
He who hesitates is Lost
查看>>
php中引用&的真正理解-变量引用、函数引用、对象引用
查看>>
关于<form> autocomplete 属性
查看>>
OutOfMemory
查看>>
LeetCode:组合总数III【216】
查看>>
Thinkphp框架回顾(三)之怎么实现平常的sql操作数据库
查看>>
虚函数的效率问题
查看>>
POJ 1860 Currency Exchange(SPFA 判断有无“正”环)
查看>>
广告地址屏蔽
查看>>
收缩SqlServer数据库日记方法
查看>>