Spring框架01

Spring框架

Spring概念:

Spring是开源的轻量级的框架,spring是一个分层的JavaEE/SE full-stack(一站式)轻量级开源框架

两个核心:

Aop:面向切面编程扩展功能不是修改源代码实现

ioc: 面向反转,把对象的创建不是通过new的方式实现,而是交给spring配置创建类的对象

Spring是一站式架构:

SpringjavaEE三层结构中,每一层都提供不同的解决技术

Web层:springMvc

业务层Service层:springioc

持久层Dao层:springjdbc Template

Spring框架的特点:

1. 方便解耦,简化开发:spring就是一个大工厂,可以对所有对象创建和依赖关系维护,交给spring

2. Aop编程的支持:spring提供面向切面编程,可以方便的实现对程序进行权限拦截,运行监控等功能

3. 方便程序测试:springJunit4支持,可以通过注解的方式测试spring程序

4. 方便集成各种优秀框架:spring可以和各种优秀的框架进行直接支持(struts2hibernatemybatis,quartz等)

5. 降低javaEE API的使用难度:springjavaEE开发中非常难用的一些API(JDBC,JavaMail ,远程调用等),都提供了封装,是这些api应用难度大大降低

Spring版本:

1. hibernate 5.x常用

2. Spring 4.x常用

3. Struts2

SpringIOC操作:

把对象的操作交给spring进行管理:

Ioc操作分为两部分:

1. ioc的配置文件方式

2. Ioc的注解方式

Ioc底层原理:

1. xml配置文件

2. Dom4j解决xml

3. 工厂设计模式

4. 反射

思想:高内聚低耦合

Ioc入门案例:

1. 导入jar

Jar特点:都有三个jar

Spring beans   ,javadoc  sources

Core container:beans ,core ,context,spel

Spring最基本的功能,导入以上四个核心的jar包就可以

还要导入日志的jar

2. 创建类,在类里面创建方法(直接交给spring

3. 创建spring配置文件,配置创建类

Spring核心配置文件名称和位置不是固定的,建议放到src下,官方名称applicationcontext.xml

引入schema约束:

4. 写代码测试对象创建

 

Springbean管理(xml方式)

使用bean标签:

Id:不能出现特殊符号

Class:bean对象的全路径

Name:能出现特殊符号(已经不用)

Scope属性:代表着bean的作用范围

Singleton:单例(默认值)

Prototype:多例,在spring框架集合struts2框架的时候,Action类也需要交给spring做管理,配置把action类配置成多例

Request:应用在web项目中,每次HTTP请求都会创建一个新的bean

Session:应用在web项目中,同一个HTTP session共享一个bean

Globalsession:应用早web项目中,多服务器间的session

 

Bean对象的创建和销毁的两个属性配置(了解):

* 说明:Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法

* init-method -- bean被载入到容器的时候调用init-method属性指定的方法

* destroy-method -- bean从容器中删除的时候调用destroy-method属性指定的方法

* 想查看destroy-method的效果,有如下条件

* scope= singleton有效

* web容器中会自动调用,但是main函数或测试用例需要手动调用(需要使用ClassPathXmlApplicationContextclose()方法)

 Spring框架中Bean管理的常用注解**

1. @Component:组件.(作用在类上)

2. Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的)
* @Controller -- 作用在WEB层
* @Service -- 作用在业务层
* @Repository -- 作用在持久层

* 说明:这三个注解是为了让标注类本身的用途清晰,Spring在后续版本会对其增强

3. 属性注入的注解(说明:使用注解注入的方式,可以不用提供set方法)
* 如果是注入的普通类型,可以使用value注解
* @Value -- 用于注入普通类型

* 如果注入的是对象类型,使用如下注解
* @Autowired -- 默认按类型进行自动装配
* 如果想按名称注入
* @Qualifier -- 强制使用名称注入

* @Resource -- 相当于@Autowired和@Qualifier一起使用
* 强调:Java提供的注解
* 属性使用name属性

----------

**Bean的作用范围和生命周期的注解**

1. Bean的作用范围注解
* 注解为@Scope(value="prototype"),作用在类上。值如下:
* singleton -- 单例,默认值
* prototype -- 多例

2. Bean的生命周期的配置(了解)
* 注解如下:
* @PostConstruct -- 相当于init-method
* @PreDestroy -- 相当于destroy-method

----------

Spring框架整合JUnit单元测试

1. 为了简化了JUnit的测试,使用Spring框架也可以整合测试

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值