Spring框架总结(2)

本文深入探讨SpringBoot与传统Spring框架的配置方式,包括XML配置、注解配置及Java配置,详细解析了自动装配、作用域、生命周期、SpEL表达式及bean的创建过程。同时介绍了使用annotation定义bean的方法及Spring注入属性的各种注解。

XML配置续&annotation注解

  1. SpringBoot:分布式微框架,把一个大项目分解成若干小项目,远程相互调用
  2. 命名空间:namespaces(在applicationContext.xml页面左下角  ,勾选响应的命名空间即可使用)
  3. Util Schema:这个命名空间包含了一些定义集合对象的标记
    1. util:list 标签(一个 list 供多个对象复用)
    2. util:map 等
  4. p 命名空间:简化注入属性操作
  5. 自动装配:autowire 开关
    1. 根据type:匹配唯一的一个,多了报错(不过日常开发时不常见多个同类型)
    2. 根据name
    3. 所有bean都自动装配:在beans里打开如图开关,设置default为byType 或 byName
  6. scope:代表作用域,共有四个值
    1. singleton:单例(仅创建一个对象;可同时指定lazy-init属性,true为getbean时创建,默认false为创建工厂时创建)
    2. prototype:原型(每次创建一个新对象)
    3. request:一次请求内仅创建一个对象
    4. session:一次会话期间仅创建一个对象
    5. 常用singleton:无状态bean,无需创建多个对象
  7. context:placeholder:可以加载属性文件信息
  8. SpEL
    1. spring的表达式语言
    2. 作用:可以在配置文件中通过在value中使用 #{ } 给属性动态注入数值
    3. 通过SpEL可以访问其他对象的属性,方法及静态方法;同时还可以使用三目运算符和正则表达式
    4. 题外话:Math取整方法
      1. //取整,floor截断后面的浮点数,输出为2 System.out.println(Math.floor(2.5));
      2. //ceil,截断后面的浮点数后+1,输出为3 System.out.println(Math.ceil(2.1));
      3. //round四舍五入 System.out.println(Math.round(2.36));
  9. Spring(IOC)容器创建 bean 的生命周期
    1. 实例化
    2. 注入属性值(setXxx方法)
    3. init() 可配置
    4. 使用
    5. destroy() 可配置,prototype 无此过程
  10. 利用工厂创建产品
    1. 不是工厂模式来创建对象也可用上图的方法
      1. 只要用静态方法创建对象即可用上图中简单工厂的方法
      2. 只要用对象的普通方法即可用上图中工厂方法的方法
      3. 只要用new直接创建对象即可直接用<bean id="" class=""> <property> 的方法
  11. Spring 支持的配置方式
    1. xml(以上所述都是xml)
    2. annotation
    3. java 配置(spring4)
  12. 使用 annotation 方式定义一个 bean 可以使用以下四种类型
    1. @Component
    2. @Repository(dao)
    3. @Service(业务层,service)
    4. @Controller(控制层,controller)
    5. 这四个类型的 Annotation 的作用完全一样,只是语义不同;
    6. 如果使用 Annotation 方法定义 bean,还需对 bean 进行扫描
      1. context:component-scan 标记:
        1. 扫描dao包里(包括其子包下)的所有类:<context:component-scan base-package="com.oracle.dao"></context:component-scan>
      2. 若需指定多个包,用 " , " 分隔开
      3. 若不想扫描子包,设参数 resource-pattern="*.class"
      4. 标记中还可使用两个子标记进行过滤:type一般为注解,expression直接复制使用该注解时所导的包名
        1. include-filter 只包含
        2. exclude-filter 排除
        3. include 需设置父标记参数 use-default-filter 为 false,否则不起作用
  13. Spring注入属性的注解
    1. @Autowired:可以自动注入;先根据 byType,若有多个同类型 bean 则根据 byName 进行装配;此注解是Spring提供的注解
    2. @Resource
    3. @Inject
**项目名称:** 基于Vue.js与Spring Cloud架构的博客系统设计与开发——微服务分布式应用实践 **项目概述:** 本项目为计算机科学与技术专业本科毕业设计成果,旨在设计并实现一个采用前后端分离架构的现代化博客平台。系统前端基于Vue.js框架构建,提供响应式用户界面;后端采用Spring Cloud微服务架构,通过服务拆分、注册发现、配置中心及网关路由等技术,构建高可用、易扩展的分布式应用体系。项目重点探讨微服务模式下的系统设计、服务治理、数据一致性及部署运维等关键问题,体现了分布式系统在Web应用中的实践价值。 **技术架构:** 1. **前端技术栈:** Vue.js 2.x、Vue Router、Vuex、Element UI、Axios 2. **后端技术栈:** Spring Boot 2.x、Spring Cloud (Eureka/Nacos、Feign/OpenFeign、Ribbon、Hystrix、Zuul/Gateway、Config) 3. **数据存储:** MySQL 8.0(主数据存储)、Redis(缓存与会话管理) 4. **服务通信:** RESTful API、消息队列(可选RabbitMQ/Kafka) 5. **部署与运维:** Docker容器化、Jenkins持续集成、Nginx负载均衡 **核心功能模块:** - 用户管理:注册登录、权限控制、个人中心 - 文章管理:富文本编辑、分类标签、发布审核、评论互动 - 内容展示:首页推荐、分类检索、全文搜索、热门排行 - 系统管理:后台仪表盘、用户与内容监控、日志审计 - 微服务治理:服务健康检测、动态配置更新、熔断降级策略 **设计特点:** 1. **架构解耦:** 前后端完全分离,通过API网关统一接入,支持独立开发与部署。 2. **服务拆分:** 按业务域划分为用户服务、文章服务、评论服务、文件服务等独立微服务。 3. **高可用设计:** 采用服务注册发现机制,配合负载均衡与熔断器,提升系统容错能力。 4. **可扩展性:** 模块化设计支持横向扩展,配置中心实现运行时动态调整。 **项目成果:** 完成了一个具备完整博客功能、具备微服务典型特征的分布式系统原型,通过容器化部署验证了多服务协同运行的可行性,为云原生应用开发提供了实践参考。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值