spring的基础知识

摘自《Spring框架技术》
Spring框架是一种非侵入式的轻量级框架
1.非侵入式的技术体现
允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口。
2.如何实现非侵入式的设计目标的
 1)应用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组间BeanFactory
 2)配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入
 3)优点:允许所开发出来的应用系统能够在不用的环境中自由移植,不需要修改应用系统中的核心功能实现的代码;

1.spring以一种非侵入式的方式(struts2的侵入式与非侵入式的比较,一种继承与不继承,继承的侵入式可以使用继承的方法使用被继承类的所有方法,而创建一个单独的pojo类可以做相关的测试,但是使用不方便,不能切换框架;)侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。
非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。
--------------------------------
2.spring提供的IOC(控制(对象的生命周期创建init-method,销毁 destroy-method)反转(创建对象的权限改变;没有使用spring之前每层之间自己创建一个对象提供给其他类使用比如说在service层创建一个dao对象提供给service使用的,使用spring之后无需创建对象只需将dao这个作为service的一个属性这是一种非侵入式的方式然后在配置文件中配置即可自动创建这个bean对象了)),AOP将组合的耦合度降低
-------------------------
3.spring获取核心容器有如下两种方式:(文件系统的方式就是区分操作系统对于windows的操作系统这个路径写的方法如下:d:java/application.xml.linux下这个路径的写法是"/home/java/application.xml)
 ApplicationContext ac=new   FileSyetemXmlApplicationContext(绝对路径);
  ApplicationContext ac=new     ClassPathXmlApplicationContext(src下面的路径)括号中的内容可以是字符串也可以是数组
---------------------------------
spring启动的时候bean对象就已经创建了(--默认情况--下spring启动就是配置文件注册的时候创建所有的bean,所有的bean都是单例,在spring生命周期内只有一个);销毁spring容器需要使用AbstractXmlApplicationContext类才能调用该类的close方法这样正常的关闭spring之后就可以调用配置文件中的属性destroy-method的相关方法,
init-method="init" destroy-method="destroy"
----------------------
单独使用factory-method只能使用静态的方法,也可以通过实例工厂的方式使用factory-method调用相应的产生实例的方法,配合factory-bean(先创建一个实例对象),然后通过工厂的实例调用其方法获取对象,静态工厂直接调用工厂的方法
-----------------------
bean中的属性id与name区别是name中可以有其他特殊字符"/,*等',在spring ioc中请求路径有作用;getbean(id或者name或者class的类型)
-------------------
scope默认的是singleton单例的,prototype(原型)多例.request一次请求来创建一个bean,session在一个会话中。
不想要每次spring启动的时候创建对象可以使用懒加载lazy-init=“true”方式。
-----------------------------
初始化bean的时机有两种:第一是在spring启动的时候所有singleton bean提前进行实例化,另外一种是使用懒加载的方式lazy-init
--------------------------
依赖注入,使用构造器注入constructor其中的属性index的值与构造函数中的顺序有关从0开始,value中设置属性的值,ref中属性bean可以调用另外一个对象
--------------
property与map一样都是key,然后取值getproperty(key)

























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Spring是一个广泛使用的轻量级开源框架,用于构建企业级Web应用程序。Spring框架提供了模块化的解决方案,简化了企业级应用的开发、管理以及依赖注入(Dependency Injection,DI)等功能。以下是一些Spring基础知识点的整理: 1. **IoC(Inversion of Control)和DI(Dependency Injection)**:Spring的核心思想就是IoC,它反转了传统的控制流动,使对象之间通过容器管理彼此的依赖关系,而不是硬编码。DI是IoC的一种具体实现方式,通过配置文件或注解自动为对象提供所需依赖。 2. **Bean的作用域和生命周期**:Spring中的Bean有多种作用域,如Singleton(单例)、Prototype(原型)、Request、Session等。每个Bean都有其生命周期,从创建、初始化到使用和销毁。 3. **Spring配置文件**:通常使用XML配置文件(如applicationContext.xml)或Java配置(@Configuration classes)来定义Spring应用的组件和依赖关系。 4. **AOP(Aspect Oriented Programming)**:Spring AOP支持面向切面编程,可以编写跨组件的行为,比如日志记录、事务管理等。 5. **Spring MVC**:Spring提供的web MVC架构,包括Controller处理HTTP请求,Model负责数据访问和业务逻辑,View负责渲染结果给用户。 6. **Spring Boot**:Spring Boot简化了Spring应用的初始搭建,自动配置了许多常用的功能,使得快速开发变得更容易。 7. **Spring Data**:提供了一套高级API,用于简化数据访问操作,如JPA、MongoDB等。 8. **Spring Security**:用于实现Web应用的安全管理,包括认证、授权、会话管理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值