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

Spring入门

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

Spring入门

Spring框架

Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以 从Spring中受益。

Spring的核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

EE开发分成三层结构
	 WEB层:Spring MVC
	 业务层:Bean管理:(IOC)
	 持久层:Spring的JDBC模板.ORM模板用于整合其他的持久层框架

Spring的框架的特点:
方便解耦,简化开发;AOP编程的支持;声明式事务的支持;方便程序的测试;方便集成各种优秀框架;降低JavaEE API的使用难度

IOC功能:
全称Inverse of Control,控制反转,将对象的创建权反转给Spring。使用IOC可以解决的程序耦合性高的问题

入门案例:
1.新建maven工程,在pom.xml文件中添加Spring框架的坐标


	        
	            org.springframework
	            spring-context
	            5.0.2.RELEASE
	        

2.在resources目录下创建applicationContext.xml的配置文件,名称是可以任意的,但是一般都会使用默认名称。引入spring的约束



3.完成接口的配置,这里举个栗子:


4.编写测试程序,采用Spring框架的工厂方式来获取到UserService接口的具体实现类

方式一:使用spring的工厂

public void demo2(){
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		// 通过配置的id名从工厂获得对象:
		UserService userService = (UserService) applicationContext.getBean("userService");
		userService.sayHello();
	}

方式二:获取bean对象:

UserService userService1 = context.getBean("userService", UserService.class);

ApplicationContext接口
使用ApplicationContext工厂的接口,使用该接口可以获取到具体的Bean对象
该接口下具体的实现类

  • ClassPathXmlApplicationContext:加载src类路径下的Spring配置文件
  • FileSystemXmlApplicationContext:加载本地磁盘下的Spring配置文件
  • AnnotationConfigApplicationContext:读取注解创建容器的

BeanFactory工厂
BeanFactory工厂是Spring框架早期的创建Bean对象的工厂接口

BeanFactory和ApplicationContext的区别
(1)BeanFactory采取延迟加载,第一次getBean时才会初始化Bean
(2)在加载applicationContext.xml时候就会创建具体的Bean对象的实例,还提供了一些其他的功能。如事件传递,Bean自动装配等。

Spring 创建Bean对象的三种方式
方式一:
使用默认空参构造函数创建。在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时。采用的就是默认空参构造函数创建bean对象,此时如果类中没有默认构造函数,则对象无法创建。
eg:


方式二:
使用普通工厂中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器)



方式三:
使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器)


bean标签的配置:
1.id属性name属性

  • id:给Bean起个名字,在约束中采用ID的约束,唯一
    取值要求:必须以字母开始,可以使用字母、数字、连字符、下划线、句号、冒号,但不能出现特殊字符
  • name:给Bean起个名字,没有采用ID的约束
    取值要求:name:出现特殊字符。如果没有id的话 , name可以当做id使用

2.class属性
Bean对象的全路径

3.scope属性
scope属性代表Bean的作用范围(常用的有前两个)

  • singleton:单例(默认值)
  • prototype:多例,在Spring框架整合Struts2框架的时候,Action类也需要交给 Spring做管理,配置把Action类配置成多例!!
  • request:应用在Web项目中,每次HTTP请求都会创建一个新的Bean 放到request 域中,- - request销毁了,对象也就没了
  • session:应用在Web项目中,同一个HTTP Session 共享一个Bean Session销毁了, 里面的对象也就没了
  • globalsession:应用在Web项目中,多服务器间的session

依赖注入(DI)
IOC和DI的概念

  • IOC:Inverse of Control,控制反转,将对象的创建权反转给Spring
  • DI:Dependency Injection,依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中

DI(依赖注入)
eg:如果UserServiceImpl的实现类中有一个属性,那么使用Spring框架的IOC功能时,可以通过依赖注入把该属性的值传入进来
具体的配置如下:

public class UserServiceImpl implements UserService {
		 private String name; //提供属性
		public void setName(String name) { //提供set方法
			this.name = name;
		 }
}

	

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

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

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