当前位置: 首页>前端>正文

ssm框架中spring作用 在ssm框架中,spring的主要功能是

Spring

学习(一)
前言: 根据Spring学习笔记整理。第一部分


文章目录

  • Spring
  • 1. Spring 含义
  • 2.Spring的优势
  • 3.Spring模块
  • 4. schema & dtd
  • Spring入门步骤(案例)
  • 1. 导入jar包
  • 2. 配置文件
  • Spring 相关概念【重要】
  • BeanFactory
  • 案例
  • 小结:
  • 常见异常
  • Spring xml 的配置bean
  • 1. id、name
  • 2. import



以下是本篇文章正文内容,仅供参考


1. Spring 含义

要点【轻量级、容器、集成】

spring是开源的轻量级企业开发应用框架

降低企业开发难度

spring提供一站式解决方案,每一层都有自己的解决方案

2.Spring的优势

  • 开源轻量级
  • 提供AOP功能
  • 提供IOC\AOP\DI容器
  • 提供集成测试环境
  • 方便集成其他框架

3.Spring模块

ssm框架中spring作用 在ssm框架中,spring的主要功能是,ssm框架中spring作用 在ssm框架中,spring的主要功能是_配置文件,第1张

重点掌握以下几个部分:

  • 集成测试环境模块
  • 核心模块(Beans\Core)
  • AOP模块(aop\aspectj)
  • 数据访问和集成
  • web模块

4. schema & dtd

  • schema
  • 中文含义:提要,提纲,就是模板的意思。
  • 作用:约束XML该如何编写,约束配置文件中的标签书写规范
  • dtd
  • 和schema一样,用于约束XML如何编写,但是已经很少使用了。
  • 在Eclipse中关联schema

关联schema之后,输入尖括号,即可显示提示。

WIndows -> Preferences

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-49yccdPM-1600429714788)(assets/1585706290375.png)]

XML Catalog -> Add

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YHNLi5Nh-1600429714790)(assets/1585706371628.png)]

File System.. -> 找到本地schema本地路径,引入即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPW1QudV-1600429714792)(assets/1585706484759.png)]

Spring入门步骤(案例)

搭建Spring环境步骤(使用框架的通用步骤)

  • 导入spring的jar
  • 编写配置文件
  • 使用

1. 导入jar包

(暂时导入三个,需要再导入其它的。按照console调试查看,缺少什么导什么)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Dd0RBsP-1600429714795)(assets/1585706570264.png)]

2. 配置文件

注意:配置文件要和src分开。因此,在工程根目录下,创建新的文件夹存放。引用的时候通过指定classpath即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IkpYGSly-1600429714796)(assets/1585706585096.png)]

xml文件配置参考 :在这个里面可以拿到xml头。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1u5bWVXm-1600429714799)(assets/1585706676994.png)]
xml文件配置代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     <!-- 告诉容器需要管理的对象 -->
     <bean name="userService" class="com.neu.service.UserServiceImpl"></bean>
</beans>
public class _01HelloWorld {
	//spring步骤
	    //导入jar  (beans\core)
	    //编写配置文件
	    //使用
	public static void main(String[] args) {
		Resource resource = new ClassPathResource("applicationContext.xml");
		BeanFactory beanFactory = new XmlBeanFactory(resource);
	}
}

Spring 相关概念【重要】

  • 容器(存放对象,提供注册(放入容器)、获取(得到对象)的操作。)
    相当于生活中存放东西的器皿,在程序的角度就是用来存放对象(bean)的容器。涉及到对象的装配、取出以及管理等操作
    ps:存放的时候,使用配置文件(xml)进行设置。
    案例: 指定容器管理对象
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     <!-- 告诉容器需要管理的对象 -->
     <bean name="userService" class="com.neu.service.UserServiceImpl"></bean>
</beans>
  • IOC 控制反转
    是一种思想,就是将原来在程序手动创建的对象,交给spring容器来处理,使用的时候直接从容器中获取即可。
  • 正向控制:需要什么对象自行来创建
  • 反向控制:需要的对象不用手动创建,直接从容器中获取,不用关心对象创建的过程。统一把对象的创建权限交给容器来处理。

案例: 使用 正向控制 和 IOC 两种方式创建 userService 对象

正向控制:

public static void main(String[] args) throws Exception{
  // 正向控制
  UserService userService = new UserService();
  System.out.println(userService);
}

反转控制(IOC):

public static void main(String[] args) throws Exception{
 
  //IOC
  //将对象的创建权利交给容器来处理。
  Resource resource = new ClassPathResource("applicationContext.xml");
  BeanFactory beanFactory = new XmlBeanFactory(resource);

  //根据名字获取
  UserService userService = (UserService) beanFactory.getBean("two");
  System.out.println(userService);
}
  • DI
    在对象创建过程中,将依赖的属性(简单值、对象、集合)通过配置方式告诉容器来给自己设置。(一句话:对象需要什么属性,容器会自动赋值)【后续一整块内容的,现在暂时简单了解一下即可。】
  • AOP
    AOP[Aspect-Oriented programming] 是指 面向切面编程(直接翻译),主要概念有:切点、切面(前置通知、后置通知、环绕通知),先看看概念。最后在来看。是Spring中很重要的一部分。应用场景统一日志处理(logging–log4j2)、统一事务处理(transaction\tx-jar包表示)、性能监控(performance monitoring)、权限(privileges)等等【后续一整块内容的,现在暂时简单了解一下即可。】

BeanFactory

  • BeanFactory的作用(含义)
    spring容器的最基本接口,用来配置、创建、管理对象的容器。
  • BeanFactory管理bean的原理
  • 通过Resource具体类读取XML配置文件
  • 解析配置文件(XML)内容
  • 解析<bean>标签
  • 通过反射创建对象(无参构造器)后放入容器 [必须要提供一个无参构造器]
  • 对外提供getBean()的方法获取容器

案例

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     
     <!-- 告诉容器需要管理的对象 -->
     <!-- name属性值不能重复 -->
     <!-- id和name作用一样,但是name可以通过,号赋值多个 -->
     <bean name="userService,one,two" class="com.neu.service.UserServiceImpl"></bean>
     <!--<bean name="otherUserService" class="com.neu.service.UserServiceImpl"></bean>-->
</beans>
package com.neu.service;
public interface UserService {

}
package com.neu.service;
public class UserServiceImpl implements UserService {
}
public class _02BeanFactory {
	
	public static void main(String[] args) throws Exception{
		//IOC
		   //将对象的创建权利交给容器来处理。
		Resource resource = new ClassPathResource("applicationContext.xml");
		BeanFactory beanFactory = new XmlBeanFactory(resource);
		  
		
		//根据名字获取
		UserService userService = (UserService) beanFactory.getBean("two");
		System.out.println(userService);
		    
		//根据类型获取
		   //注意点:通过类型查找,如果找到多个会报错
		//UserService userService = beanFactory.getBean(UserService.class);
		//System.out.println(userService);
		
		//根据名字和类型获取(建议)
		//UserService otherUserService= beanFactory.getBean("otherUserService",UserService.class);
		//System.out.println(otherUserService);
	}
}

小结:

XML配置的规则

<!-- 使用bean标签  告诉容器需要管理的对象 -->

<!-- name属性值不能重复,同个name不能给多个bean使用,但是一个name中能有多个值 -->
<!-- id和name作用一样,但是name可以通过,号赋值多个 -->
<bean name="userService,one,two" class="com.neu.service.UserServiceImpl"></bean>
<!--<bean name="otherUserService" class="com.neu.service.UserServiceImpl"></bean>-->

getBean方式(三种)

  • 根据名字获取getBean(名字)
  • 根据类型获取 getBean(类型)
  • 根据名字和类型获取(建议) getBean(名字,类型) 前面两种需要强转类型,这种不用。

常见异常

  • 找到多个异常
  • 找不到异常
  • 创建容器的时候提示name已经存在异常
  • 等等,要开错误的关键信息

Spring xml 的配置bean

1. id、name

  • 相同点:
  • 都可以被getBean获取到
  • id 和 name都必须唯一,,同个name不能给多个bean使用,但是一个name中能有多个值 。
  • 不同点:
  • name可以通过,号隔开赋值多个

2. import

[用来合并多个xml]

  1. 含义:
    将一个大的配置文件拆解成多个文件,然后通过import整合一起。
  2. 案例

beanFactory.xml 【路径: config(图标有包的文件夹)/beanFactory.xml】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     
     <!-- 告诉容器需要管理的对象 -->
     <!-- name属性值不能重复 -->
     
     <!-- id和name作用一样,但是name可以通过,号赋值多个 -->
     <bean name="userService" class="com.neu.service.UserServiceImpl"></bean>
     <!-- <bean name="otherUserService" class="com.neu.service.UserServiceImpl"></bean> -->
</beans>

在applicationContext.xml中使用import导入在类路径下的配置文件

applicationContext.xml

<!-- file:文件系统(了解) -->
<!-- classpath:从classpath(类路径)下查找,推荐使用该方法 -->
<import resource="classpath:beanFactory.xml"/>

```

在applicationContext.xml中使用import导入在类路径下的配置文件

applicationContext.xml

<!-- file:文件系统(了解) -->
<!-- classpath:从classpath(类路径)下查找,推荐使用该方法 -->
<import resource="classpath:beanFactory.xml"/>



https://www.xamrdz.com/web/2t81964459.html

相关文章: