一、Spring 特征

1. 实用于B/SC/S,使用资源小

2. 对象间的关系松,高内聚,低耦合

IOC --- Inverse of control

l 使得业务组件都处在框架的管理之下

l 框架可以管理组件的创建和依赖关系

l 框架可以提供可以配置的服务

3. 通过AOP技术将业务与非业务分离

AOP --- Aspect Oreinted Programming

在不修改组件的前提下,为组件提供扩展的服务

4. Spring容器管理整个JavaBean生命周期

简化对java ee技术的使用

5.HibernateStruts一样是个框架

(类集合) (框架提供)

6. Spring是一个全方位的框架

SpringMVC 类似 Struts

7. Spring在开发中处于什么位置:

l 业务逻辑层 (Ioc *AoP) 最擅长的一层

l 表现层 (SpringMVC Web B/S都有)

l 数据持久层 (SpringDAO ORM)

8. 什么是IoC

1) IOC --- Inverse of control (控制反转)

A主动创建B的实例:正向控制

以前:拉模型

l 组件决定自己依赖的对象的创建

l 接口没有在松散耦合中起到太大作用

IOC:推模型,也叫做依赖注入(Dependency in)

l 采用工厂模式管理应用组件的创建,管理组件的依赖关系

l 用接口表达组件间的依赖

依赖注入的方式

1)构造方法注入

2)set 方法注入

2) Spring IoC 容器先创建B的实例,再把B的实例注入A

3) 执行过程:

a) 执行 BeanFactory ApplicationContext 时,解析 xml 文件

b) 通过反射,执行 JavaBean 的空参构造方法,创建实例

c) 调用 JavaBean set方法,将xml的信息注入到这 JavaBean实例

或者执行满参构造方法创建实例,同时注入 xml 的信息

9. spring 框架的7个组成部分

1) BeanFactory -- (低级容器,接口)使用工厂模式实例化组件,装配组件。

XmlBeanFactory(实现类)

2) ApplicationContext (高级容器,接口)--- bean factory 增加事件发布,增加了国际化,资源访问等的支持

ClassPathXmlApplicationContext(实现类)

3) AOP--提供一种基于声明方式的AOP

4) DAO支持--简化jdbc,声明的事务

5) ORM支持-- 简化使用 Hibernate ,toplink 等持久化框架,方便的事务管理

6) web 支持-- web 应用中使用 spring 框架的相关支持,协调表现层和业务层的关系

7) Web MVC--- 独立的Web MVC框架

spring 是全方位的框架

spring 的组成部分相对独立,可选择的使用
### Spring框架的核心特性及功能介绍 #### 1. 独立运行的Spring应用程序 Spring框架支持构建独立运行的应用程序,无需依赖外部容器。这种特性使得开发者能够轻松地在任何环境中部署Spring应用程序[^1]。例如,通过嵌入式Servlet容器(如Tomcat或Jetty),可以将Spring Boot应用程序作为独立的JAR文件运行。 ```java @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` #### 2. 约定优于配置 Spring框架采用了“约定优于配置”的理念,减少了开发者的配置负担。框架会根据默认约定自动配置许多组件,从而简化了开发流程[^2]。例如,在Spring Boot中,只需添加特定的依赖项,框架便会自动配置相应的功能模块。 #### 3. 自动配置(Auto-Configuration) Spring Boot提供了种基于类路径和环境的自动配置机制,能够根据项目中的依赖项自动配置Spring应用程序。这种特性显著降低了手动配置的工作量[^1]。例如,当项目中包含`spring-boot-starter-data-jpa`依赖时,Spring Boot会自动配置JPA相关的数据源和实体管理器。 #### 4. 外部化配置 Spring框架支持通过外部化配置管理应用程序属性,允许开发者在不同的环境中使用相同的代码库。配置可以通过多种方式加载,包括`application.properties`、`application.yml`文件以及环境变量等[^2]。以下是个典型的`application.properties`示例: ```properties server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=secret ``` #### 5. 响应式编程支持 Spring框架引入了响应式编程模型,支持非阻塞和事件驱动的编程风格。这使得Spring应用程序能够更好地处理高并发场景下的请求[^2]。例如,使用`WebFlux`模块可以构建响应式Web应用程序。 ```java @RestController public class ReactiveController { @GetMapping("/reactive") public Flux<String> reactiveEndpoint() { return Flux.just("Hello", "World"); } } ``` #### 6. Actuator监控 Spring Boot Actuator提供了生产就绪的功能,用于监控和管理Spring应用程序。它支持健康检查、指标收集、线程转储等功能[^2]。例如,通过启用Actuator端点,可以访问应用程序的健康状态。 ```properties management.endpoints.web.exposure.include=health,info ``` #### 7. 安全性增强 Spring Security是Spring框架的部分,提供了强大的身份验证和授权功能。它支持多种安全协议和机制,包括OAuth2、JWT等[^3]。以下是个简单的Spring Security配置示例: ```java @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/public").permitAll() .anyRequest().authenticated() .and() .formLogin(); } } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值