spring基础了解,小白入门框架必备

0.spring框架家族的学习路线

spring framework–>springWebMVC–>springboot–>springdata–>springSession–>springCloud

1.搭建spring环境

​ 最新版本5.2.8

​ spring 框架中学习路线:

	核心的:IOC和AOP
	测试:与junit集成
	持久层:事务管理
	web:springMVC
	组件集成:远程接口调用,任务调度
操作步骤:
- 引入spring的核心jar包:4个核心jar,1个commons-logging日志包
- 创建spring的配置文件,spring.xml
- 创建服务层的类
- 把自定义的服务类配置到spring.xml中
- 测试类来加载spring.xml文件,创建spring的容器(保存对象)
	ApplicationContext ac = new ClasspathXMLApplicationContext("xml文件")
	Object obj = ac.getBean("bean的id")
概念:
IOC:控制反转,原来对象管理由应用自身来管理,交由第三方的组件来管理对象。比如spring框架,本质就是由spring来new对象。
DI:依赖注入,在spring容器实例化期间,动态的给某个bean对象需要依赖的其他bean注入引用。
特性:
spring容器管理的对象默认单例,多次获取bean是同一个对象。
spring在程序运行期间,动态的给成员变量赋值。

2.spring的作用

​ spring是一个开源控制反转和面向切面的容器框架,也称它为一个大的bean工厂,用来管理项目中mvc相关的bean对象。同时spring也是一个框架的平台,整合web开发中使用各种技术栈。(redis,mybatis,springmvc,quartz,hibernate,mybatis-plus等)。

​ 把对象交给spring后,对象默认单例,程序中需要用到该对象,不用到处new,产生一些垃圾对象。

​ 实现MVC的真正解耦,控制层只依赖抽象的服务层,服务层只依赖抽象的dao层。

3.spring的容器原理

DOM4j加载xml,解析xml的bean标签,反射得到bean对象,把对象保存集合容器。

4.spring的ioc方式总结:

  • 配置bean标签

    用来为jar包中的类配置到spring容器,比如DruidDataSource等…

<bean id="" class="">
scope:singleton,表示该类单例,默认值
           prototype,原型,对象不再是单例,不常用,除了struts2的控制层对象会用到.
init-method:当bean实例化完成后,执行的初始化方法
destroy-method:当spring容器销毁时,执行bean的destroy-method方法
lazy-init:bean对象延迟初始化,但并不对象的单例状态
  • 工厂实例化bean

把mybatis的sqlsessionFactory对象放容器

静态工厂实例化bean:
<bean id="sqlSessionFactory" class="com.javasm.factroy.SqlSessionFactoryBean" factory-method="getSqlSessionFactory"></bean>

实例工厂实例化bean:
<bean id="fb" class="com.javasm.factroy.SqlSessionFactoryBean"></bean>
<bean id="sqlSessionFactory" factory-bean="fb" factory-method="getSqlSessionFactory"></bean>
  • 包扫描bean注解

用来在自定义的类上加注解来配置到spring容器,

扫描注解:
@Controller,@Service,@Repository,@Component把类交给spring管理,成为springBean
@Autowired,@Resource用来做对象装配
@Scope指定bean的单例多例
@PostConstruct初始化方法
@PreDestroy销毁方法
<context:component-scan base-package="com.javasm"></context:component-scan>
通过注解配置的bean,id为类名首字母小写。

5.spring的di方式总结:

  • set注入
<property name="属性名" ref="注入的bean的id" value="值">
  • 自动装配
两个注解注解到成员变量上。
Autowired:先按照形参的类型进行注入,再按照名称查找
Resource:先按照形参的名称进行注入,找不到再按类型查找bean注入
  • 构造器注入

基于xml配置bean标签使用

<constructor-arg index|name ref|value></constructor-arg>
  • 集合注入

基于xml配置bean标签使用

property标签,给属性赋值的时候,属性类型是Array,List,Map的时候,使用<array><list><map>
  • 内部bean注入

基于xml配置bean标签使用

某个bean只会被引用一次,可以使用内部bean来注入。

6.其他

Dom4j解析xml:核心对象:SAXReader

jdk子代的Properties对象解析.properties:new Properties().load()

注意点:

spring的xml配置文件的方式是在ssm整合框架中使用。

spring的类配置的方式是在springboot框架中使用。

总结:

spring的概念:spring是一个控制反转和面向切面的容器,用来管理bean对象,同时根据bean对象的依赖关系进行动态注入bean。其他各种组件可以集成到spring这个平台(DruidDatasource,mybatis)。

IOC:bean对象的维护由应用自身维护交由spring第三方容器来维护对象(创建,关系维护,生命周期,销毁)

DI:程序运行期间,根据bean的依赖关系,从容器中找到对应的对象注入。

AOP:面向切面编程。

用法

IOC:

包扫描context:component-scan,

@Controller,@Service,@Repository,@Component,@Autowried,@Resource,@Scope,@PostConstruct,@PreDestory.

bean标签:

DI:

set注入:

<property name="" ref|value="">

自动装配:

结合包扫描,@Autowired,@Resource

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值