栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringFramework第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringFramework第一天

目录

一、SpringFramework的简介

二、Spring入门

1.下载

2. 各版本差异

3.spring框架的核心模块

三、ioc-控制反转

1.控制反转

2.基于xml的ioc

 1.创建java se工程 

 2.添加spring的核心依赖

3.创建xml文件

 

4.普通bean的控制反转

 5.静态工厂的控制反转

 6.实例工厂的控制反转

7、后处理bean 

8、Bean的生命周期

 四、BeanFactory和ApplicationContext的区别:

五、基于注解的开发

先开启组件扫描 

 常见的注解

总结


一、SpringFramework的简介

Spring是一个轻量级的一栈式开源框架,它由Rod Johnson创建。它是为了解决企业应用开发复杂性而创建的。Spirng使用基本的javaBean来完成以前只能由EJB完成的事情,然而,spring的用途不仅限于服务器端的开发。从简单性。可测试行和松耦合的角度而言,任何java应用都可以从Spring中收益。

Spring是一个轻量级的控制反转(ioc)和面向切面(aop)的容器框架

  轻量--从大小与开销两个方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1mb多的jar文件里发布。并且Spring所需要的处理开销也是微不足道的(单例)。此外,Spring是非侵入式的:典型地,Spring应用中的独享不依赖于Spring的特定类

  控制反转--Spring通过只一种称作控制反转(ioc)的技术出尽了松耦合。当应用了ioc,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为ioc和jndl相反--不是对象从容器中查找依赖,而是容器在独享初始化时不等对象请求就主动将依赖传递给它(即容器一旦创建就初始化了容器中的对象--单例)

 

  面向切面(方面)--spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用对象只实现他们应该做的--完成业务逻辑--仅此而已。他们不赋值其他系统级关注点,例如日志或事务支持

  容器--Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一个容器,你可以配置你的每个bean如何被创建  ---基于一个可配置原型,你的bean可以创建一个单独的实例(单例)或者你每次需要时都生产一个新的实例(多例)--以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级EJB容器,他们经常是庞大而笨重的,难以使用

框架---Spring可以讲简单的组件配置、组合称为复杂的应用。在Spring中应用对象不黑声明式地组合,典型地是在一个xml文件里。Spring也提供了很多基础功能(事务管理、持久哈框架集成等等),将应用逻辑开发留给了你。

所有的Spring的这些特征使你能够编写更干净、更可管理、并且更容易测试的代码。他们也为Spring中的各种模块提供了基础支持

二、Spring入门

1.下载

Spring的官网:Spring | Home


 

 


 

 


 

 


 


 


 

2. 各版本差异

 spring3.x:主要支持xml配置,并引入了部分注解用于简化xml配置

 spring4.x:主要支持xml配置,完善了注解,可以在不采用xml的配置方式,完全使用注解完成,支持jdk8

spring5.x:支持spring web工厂向springboot一样可以通过main来访问t

3.spring框架的核心模块

 核心容器

1. beans 2. core 3. context 4. spel(spring expression language) 5. jcl(日志处理

三、ioc-控制反转

控制反转:将对象的创建权交给spring容器进行管理


 最终通过 工厂模式、反射和配置文件实现了解耦合的作用(spring的基本原理)

1.控制反转

是面向对象编程的一种设计模式,可以用来降级计算机代码之间的耦合度。其中最常见的方式叫做依赖注入,还有一种方式将依赖查找。通过控制反转,对象在创建的时候,由spring容器来将所依赖的对象的引用传递给它,也可以说,依赖被注入到对象中

2.基于xml的ioc

 1.创建java se工程 

 2.添加spring的核心依赖

3.创建xml文件

 


4.普通bean的控制反转


   





spring的工厂接口的实现 主要有两种

ClassPathXmlApplicationContext  通过类路径下的xml文件生产工厂对象

//2.使用spring的ioc容器进行   ClassPathXmlApplicationContext
	         ClassPathXmlApplicationContext factory=new ClassPathXmlApplicationContext("applicationContext.xml");
			 UserService service = factory.getBean("userServiceImpl",UserService.class);
             service.save();
			

FileSystemXmlApplicationContext  通过文件系统的xml文件来生成工厂对象(绝对路径) 

	//3.使用FileSystemXmlApplicationContext
		   ApplicationContext factory=new FileSystemXmlApplicationContext("D:\eclipseCode\spring01\src\applicationContext.xml");
			  UserService service = factory.getBean("userServiceImpl",UserService.class);
		  service.save();

 5.静态工厂的控制反转

工厂模式中获取实例的方法是静态方法

package com.sofwin.factory;
import com.sofwin.service.UserService;
import
com.sofwin.service.impl.UserServiceImpl2;
public class ObjectFactory {
public static UserService
getUserService() {
return new UserServiceImpl2();
}
// ....
}





 6.实例工厂的控制反转

工厂模式获取的方法为普通方法

public class ObjectFactory {
public UserService getUserService() {
return new UserServiceImpl2();
}
// ....
}







7、后处理bean

spring源码中经常使用的bean,能够监控容器中所有的bean的初始化

  主要有两个方法  初始化方法执行前

                              初始化方法执行后

后处理bean不是普通的java类  要implements BeanPostProcessor

 
public class MyPostBean implements
BeanPostProcessor {

@Override
public Object
postProcessBeforeInitialization(Object
bean, String beanName) throws
BeansException {
System.out.println("before....."+bean+beanN
ame);
return bean;
}

@Override
public Object
postProcessAfterInitialization(Object bean,
String beanName) throws BeansException {
System.out.println("after...."+bean+beanNam
e);
return bean;
}
}

 将后处理器bean交给spring容器管理


   

8、Bean的生命周期

执行的顺序是

构造方法

初始化方法   ---可以将普通的方法声明为初始化方法,在构造方法执行以后执行一次,只执行一次

销毁方法   ---可以讲普通方法声明为销毁方法,在spring容器关闭前执行

   销毁方法要执行必须是单例的并且要手动关闭容器才会执行


 四、BeanFactory和ApplicationContext的区别:

   1.都是接口。ApplicationContext为子接口

   2.在单例模式下,ApplicationContext容器在创建的时候会实例化容器中的所有实例。BeanFactory在第一次调用getBean的方法时实例化对象

  3.在多例模式下,都在调用getBean的时候实例对象

五、基于注解的开发

先开启组件扫描 

   开启组件扫描要引入context的约束

xmlns:context="http://www.springframework.o rg/schema/context"

http://www.springframework.org/schema/conte xt

https://www.springframework.org/schema/con text/spring-context.xsd"

 常见的注解

@Component 

原生注解,类级别的注解,用于声明javaBean

使用场景:除了控制层、业务层、dao层其余需要ioc的都可以使用@Component

衍生注解

@Repository

用于dao层

@Service

用于业务层

@Controller

 用于控制层

 声明周期的注解 

@PostConstructor

@PreDestroy
 

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号