Sping的相关介绍

本文详细介绍Spring框架的下载、配置方法及bean管理,包括XML和注解方式,阐述了ApplicationContext实现类及其初始化路径,深入解析bean作用域、生命周期、自动装配及优雅关闭服务器的方法。

1.spring的下载地址

https://repo.spring.io/libs-release-local/org/springframework/spring/
这是spring的下载地址,版本看自己需要下载相应版本.
如果用idea的话就不用下载了直接再pom.xml中添加依赖就可以自己下载了
xml
<dependencies>
    <!-- Spring IOC最小依赖是beans、context,我们引入context依赖,maven会自动将beans依赖一并引入 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.1.5.RELEASE</version>
    </dependency>
</dependencies>

spring IOC

ApplicationContext实现类

1 ClassPathXmlApplicationContext类	------引入xml的配置文件
2.AnnotationConfigApplicationContext类---------引入用注解的方式配置的类(类.class)
3.FileSystemXmlApplicationContext ----这个方法是从文件绝对路径加载配置文件
4.XmlWebApplicationContext ------是专为Web工程定制的。 

Application初始化路径

1.路径前缀 classPath 说明这个文件是从类路径下加载的
2.路径中的通配符,可以用通配符匹配路径

通过xml方式管理bean

新建一个xml文件 ,编写配置文件
  ```xml

	*注意的是:schema这里 的约束地址不要用https 否则每次都要从spring加载,无网不能运行,有网的时候也会小概率出错*
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            https://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            https://www.springframework.org/schema/context/spring-context.xsd">

        <!-- 配置注解扫描包路径 -->
        <context:component-scan base-package="com.aaa.spring" />
        <!-- 把Student类配置进来,实例 Student对象-->
		<bean id = "student" class="com.aaa.spring.bean.Student"></bean>
    </beans>

通过注解的方式,管理bean

注解配置的优缺点:

   优点: 配置简单。由于Java类中已经包含很上下文信息,所有在Java类上直接加注解可以省略很多属性。
   缺点:对代码有侵入性,如果改了是基于注解的配置信息改变了,需要重新编译、打包
   注意: 	注解的要先与xml配置方式注入,这也就意味着如果你在注解和xml中都配置了某项配置,那么xml中的配置会覆盖掉注解中的配置。

在xml配置文件中通过context命名空间中的annotation-config标签开启注解配置

   	<!-- 开启注解支持 -->
 	<context:annotation-config/>
 	<!-- 指定扫描的包路径(如果指定了这个就不用指定上面的) -->
 	<context:component-scan base-package="com.john.spring" />
 	用注解的方式开启注解
 	@Configuration`注解标注的类就相当于一个xml配置文件,我们可以给其添加一个`@ComponentScan`注解来开启注解扫描支持,同时指定扫描包根路径

我们经常使用到的注解:

@Required:用于标注在setter方法之上,表示此属性必须要注入。如果容器初始化该bean时没有合适的值注入
到该属性则直接抛出异常。
@Autowired:根据依赖的类型自动注入。该注解可以用于标注在  属性、setter方法、构造方法、或带参数的普
通方法之上。Spring会将符合的参数自动注入到属性、或方法参数中。
@Resource:根据依赖bean的名称自动注入。注解的name属性不是必须的,如果不指定,那默认的名称将取
决于变量名称、setter方法的名称,还有个好处,如果按名称无法找到一个匹配bean的时候,它会自动按照类
型查找注入。
@Bean:注解允许我们通过注解的方式定义在Java代码中定义bean的配置元数据,相当于xml配置文件中的
<bean /> 这里有一个name属性,如果不指定name属性,默认取值为方法名
@Scope:注解可以限定通过注解配置的bean的作用域。默认的是singeton ,还有一个属性值是Prototype

xml和注解两种方式混合使用

注解的方式确实很简单方便,但是都各有优点缺点,看使用场合,两种混用也挺好的,虽然我还是更喜欢xml的
方式,这个看自己的爱好,

在一个配置中导入另一个配置

1.xml导入xml配置
	在<beans></beans>标签中
	<import resource="classpath:aaa.xml" />
2.注解方式方式导入其他注解配置
	@Import(aaa.class) 导入一个被注解配置过的aaa类
3.注解方式导入xml配置
	@ImportResource("aaa.xml")导入一个aaa.xml

bean的作用域scope

scope的属性有6个:singleton,prototype,request,session,applocation,websocket
在这里说一下singleton(单例的)无论使用次数都是一个对象,prototype(非单例),每次使用都会调用一次新
的对象

bean的生命周期

生命周期就是初始化和销毁,在xml文件中的<bean method-init=" ",method-destroy="></bean>来指定
生命周期, 但是在自己做测试的时候会遇到destroy销毁方法不会打印出来,这个时候就用来调用一个钩
子registerShutdownHook()这个方法.让服务器关闭等候

bean的name和id属性

id属性的值只能指定一个,使用name属性命名bean可以指定多个名称,多个值之间可以用逗号或空格
分开,无论使用哪个,都要保证唯一不重复,也只是一个限定用的也可以都同时使用.

实例化bean的方式

1.通过构造方法实例化
	一般用无参的构造方法实例化,构造方法实例化也是最常用实例化bean的方式
2.通过静态工厂实例化
<bean id="clientService" class="examples.ClientService" factory-method="createInstance">
<!-- 如果工厂方法需要参数,通过此标签传参 -->
<constructor-arg name="cname" value="TestService" />
</bean>
3.非静态工厂实例化
	<bean id="serviceLocator" class="examples.DefaultServiceLocator">

	</bean>

优雅的关闭服务器

也就是上面那个钩子
ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ctx.registerShutdownHook();

DI中的自动装配autowire

	通过byName,byType,constructor三种方式
下载前可以先看下教程 https://pan.quark.cn/s/a426667488ae 标题“仿淘宝jquery图片左右切换带数字”揭示了这是一个关于运用jQuery技术完成的图片轮播机制,其特色在于具备淘宝在线平台普遍存在的图片切换表现,并且在整个切换环节中会展示当前图片的序列号。 此类功能一般应用于电子商务平台的产品呈现环节,使用户可以便捷地查看多张商品的照片。 说明中的“NULL”表示未提供进一步的信息,但我们可以借助标题来揣摩若干核心的技术要点。 在构建此类功能时,开发者通常会借助以下技术手段:1. **jQuery库**:jQuery是一个应用广泛的JavaScript框架,它简化了HTML文档的遍历、事件管理、动画效果以及Ajax通信。 在此项目中,jQuery将负责处理用户的点击动作(实现左右切换),并且制造流畅的过渡效果。 2. **图片轮播扩展工具**:开发者或许会采用现成的jQuery扩展,例如Slick、Bootstrap Carousel或个性化的轮播函数,以达成图片切换的功能。 这些扩展能够辅助迅速构建功能完善的轮播模块。 3. **即时数字呈现**:展示当前图片的序列号,这需要通过JavaScript或jQuery来追踪并调整。 每当图片切换时,相应的数字也会同步更新。 4. **CSS美化**:为了达成淘宝图片切换的视觉效果,可能需要设计特定的CSS样式,涵盖图片的排列方式、过渡效果、点状指示器等。 CSS3的动画和过渡特性(如`transition`和`animation`)在此过程中扮演关键角色。 5. **事件监测**:运用jQuery的`.on()`方法来监测用户的操作,比如点击左右控制按钮或自动按时间间隔切换。 根据用户的交互,触发相应的函数来执行...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值