Spring简介

1.Spring是什么

Spring是分层的Java SE/EE应用 full-stack(全栈)轻量级开源框架,以IOC(控制反转)和AOP(面向切面编程)为内核。

提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等。

2.Bean标签范围配置

scope:指对象的作用范围,取值如下:

取值范围说明
singleton默认值,单例的
prototype多例的
requestWEB项目中,Spring创建一个Bean的对象,将对象存入到request域中
sessionWEB项目中,Spring创建一个Bean的对象,将对象存入到session域中
global sessionWEB项目中,应用在Portlet环境,如果没有Portlet环境那么globalSession相当于session

1)当scope的取值为singleton时

        Bean的实例化个数:1个

        Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例

        Bean的生命周期:

  • 对象创建:当应用加载,创建容器时,对象就被创建了
  •  对象运行:只要容器在,对象一直活着
  • 对象销毁:当应用卸载,销毁容器时,对象就被销毁了

2)当scope的取值为prototype时

Bean的实例化个数:多个

Bean的实例化时机:当调用getBean()方法时实例化Bean

  • 对象创建:当使用对象时,创建新的对象实例
  • 对象运行:只要对象在使用中,就一直活着
  • 对象销毁:当对象长时间不用时,被Java的垃圾回收器回收了

3.Bean生命周期配置

  • init-method:指定类中的初始化方法名称
  • destroy-method:指定类中销毁方法名称

4.Bean实例化三种方式

无参构造方法实例化

工厂静态方法实例化

工厂实例方法实例化

5.Bean的依赖注入的数据类型

除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入。

普通数据类型

引用数据类型

集合数据类型

6.Spring的重点配置

<bean>标签

        id属性:在容器中Bean实例的唯一标识,不允许重复

        class属性:要实力化的Bean的权限定名

        scope属性:Bean的作用范围,常用是Singleton(默认)和prototype

        <property>标签:属性注入

                name属性:属性名称

                value属性:注入的普通属性值

                ref属性:注入的对象引用值

                <list>标签

                <map>标签

                <properties>标签

        <constructor-arg>标签(构造注入)

<import>标签:导入其他的Spring的分文件

<import resource="applicationContext-user.xml"/>

7.Spring相关API

ApplicationContext的实现类

1)ClassPathXmlApplicationContext

它是从类的根路径下加载配置文件推荐使用这种

2)FileSyetemXmlApplicationContext

它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。

3)AnnotationConfigApplicationContext

当使用注解配置容器对象时,需要使用此类来创建spring容器。它用来读取注解。

8.Spring配置数据源

Spring容器加载properties文件

<context:property-placeholder location="xx.properties"/>
<property name="" value="${key}"/>

9.Spring原始注解

Spring原始注解主要是替代<Bean>的配置

注解说明
@Component使用在类上用于实例化Bean
@Controller使用在Web层类上用于实例化Bean
@Service使用在Service层类上用于实例化Bean
@Repository使用在Dao层类上用于实例化Bean
@Autowired

使用在字段上用于根据类型依赖注入

(按照数据类型从Spring容器中进行匹配的)

@Qualifier

结合@Autowired一起使用用于根据名称进行依赖注入

(是按照id值从容器中进行匹配的,但是主要此处@Qualifier要结合@Autowired一起使用)

@Resource相当于@Autowired+@Qualifier,按照名称进行注入
@Value注入普通属性
@Scope标注Bean的作用范围
@PostConstruct使用在方法上标注该方法是Bean的初始化方法
@PreDestroy使用在方法上标注该方法是Bean的销毁方法

10.配置组件扫描

<context:component-scan base-package="com.buba"/>

11.Spring新注解

使用上面的注解还不能全部代替xml配置文件,还需要使用注解替代的配置如下:

非自定义的Bean的配置:<bean>

加载properties文件的配置:<context:property-placeholder>

组件扫描的配置:<context:component-scan>

引入其他文件:<import>

注解说明
@Configuration用于指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解
@ComponentScan

用于指定Spring在初始化容器时要扫描的包。作用和在Spring的xmll配置文件中的

<context:component-scan base-package="com.itheima"/>一样

@Bean使用在方法上,标注将该方法的返回值存存储到Spring容器中
@PropertySource用于加载.properties文件中的配置
@Import用于导入其他配置类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值