学习笔记:JavaEE开发的颠覆者SpringBoot实战(一)spring基础

本文介绍了Spring框架的发展历程,从XML配置到注解配置,再到Java配置的转变。详细阐述了Spring的核心模块,包括核心容器、AOP、数据访问、Web、消息等功能,并概述了Spring生态中的SpringBoot、SpringCloud等项目。同时,文章还指导如何使用Maven构建Spring项目,以及Spring的基本配置原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资源信息都来自网络,本人只是记录作为个人笔记

 

一 spring概述

1 spring的简史

第一阶段:xml配置;第二阶段:注解配置(2.x时代,jdk5);第三阶段:java配置(3.x开始)

2 spring概述

spring框架是一个轻量级的企业级开发的一站式解决方案。所谓解决方案就是可以基于spring解决java ee开发的所有问题。spring框架主要提供了Ioc容器,AOP,数据访问,Web开发,消息,测试等相关技术支持。

2.1 spring模块:

(1) 核心容器(Core Container)

Spring-Core:核心工具类,Spring其他模块大量使用Spring-Core

Spring-Beans:Spring定义Bean的支持

Spring-Context:运行时Spring容器

Spring-Context-Support:Spring容器对第三方包的集成支持

Spring-Expression:使用表达式语言在运行时查询和操作对象。

(2) AOP

Spring-AOP:基于代理的AOP支持

Spring-Aspects:基于AspectJ的AOP支持

(3)消息(Messaging)

Spring-Messaging:对消息架构和协议的支持

(4)Web

Spring-Web:提供基础的Web集成的功能,在Web项目中提供Spring的容器

Spring-Webmvc:提供基于Servlet的SpringMVC;

Spring-WebSocket:提供WebScoket功能

Spring-Webmvc-Porlet:提供Portlet环境支持

(5)数据访问/集成(Data Access/Integration)

Spring-JDBC:提供以JDBC访问数据库的支持

Spring-TX:提供编程式和声明式的事务支持

Spring-ORM:提供对象/关系映射技术的支持

Spring-OXM:提供对象/xml映射技术的支持

Spring-JMS:提供对JMS的支持

 

2.2 Spring的生态

Spring Boot:使用默认开发配置来实现快速开发。

Spring XD:用来简化大数据应用开发。

Spring Cloud:为分布式系统开发提供工具集。

Spring Data:对主流的关系型和NoSQL数据库的支持。

Spring Integration:通过消息机制对企业集成模式(EIP)的支持。

Spring Batch:简化及优化大量数据的批处理操作。

Spring Security:通过认证和授权保护应用。

Spring HATEOAS:基于HATEOAS原则简化REST服务开发。

Spring Social:与社交网络API(如Facebook,新浪微博等)的集成

Spring AMQP:对基于AMQP的消息的支持。

Spring Mobile:提供对手机设备检测的功能,给不同的设备返回不同的页面支持。

Spring for Android:主要提供在Addroid上消费RESTful API的功能

Spring Web Flow:基于Spring MVC提供基于向导流程式的web应用开发。

Spring Web Services:提供基于协议有限的SOAP/WEB服务

Spring LDAP:简化使用LDAP开发。

Spring Session:提供一个API及实现来管理用户会话信息。

 

二 Spring项目快速搭建

目前主流的构建工具有:Ant,Maven,Gradle

1. maven简介

Apache Maven 是一个软件项目管理工具。基于项目对象模型(Project Object Model,POM)的概念,Maven可用来管理项目的依赖,编译,文档等信息。使用maven管理项目时,项目依赖的jar包将不在包含在项目内,而是集中放置在用户目录下的.m2文件夹下。

2.maven安装

maven下载地址:https://maven.apache.org/download.cgi

配置环境变量(类似jvm变量,有时候不生效,就将绝对路径直接追加到path变量处),测试安装“mvn -v”

3.maven的pom.xml

3.1 dependencys元素

包含多个项目依赖需要使用的dependency标签元素

3.2 dependency元素

坐标: groupId:组织的唯一标识。artifacId:项目的唯一标识。version:项目的版本。

3.3 变量定义

properties可定义变量,在dependency中引用。eg:版本号统一管理

3.4 编译插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>mavne-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

3.5 maven运作方式

maven会自动根据dependency中的依赖配置,直接通过互联网在maven中心库下载相关依赖包到.m2目录下,.m2目录下式你本地maven库

可以到https://mvnrepository.com/ 网站检索jar包依赖的坐标

若中心库没有需要的,则手动添加,如:安装oracle驱动到本地库:

mvn install:install-file -DgroupId=com.oracle "-DartifactId=ojdbc14" "-Dversion=10.2.0.2.0" "-Dpackaging=jar" "-Dfile=D:\ojdbc14.jar"

4. spring项目的搭建

基于IDEA,

  1. 新建maven项目:单击file--new--project--maven
  2. 输入maven项目坐标值
  3. 选择存储路径

三 spring基础配置

spring框架本身四大原则:

  • 使用POJO进行轻量级和最小侵入式开发。
  • 通过依赖注入和基于接口编程实现松耦合。
  • 通过AOP和默认习惯进行声明式编程。
  • 使用AOP和模板(template)减少模式化代码。

1.依赖注入

spring提供使用xml,注解,java配置,groovy配置实现bean的创建和注入,都被称为配置元数据,即描述数据的数据。

声明bean的注解:

  • @Component 组件,没有明确的角色
  • @Service 在业务逻辑层(service层)使用
  • @Repository 在数据访问层(dao层)使用
  • @Controller 在展现层(MVC--Spring MVC)使用

注入bean的注解:

  • @Autowired: spring提供的注解
  • @Inject:JSR-330提供的注解
  • @Resource: JSR-250提供的注解

2.java配置

java配置式spring4.x推荐的配置方式,通过@Configuration和@Bean来实现。

@Configuration:声明当前类式一个配置类,相当于一个spring配置的xml文件。

@Bean:注解在方法上,声明当前方法的返回值为一个Bean。

3.AOP

aop:面向切面编程,相当于OOP面向对象编程。

spring支持AspectJ注解式切面编程:

  • 使用@Aspect声明是一个切面。
  • 使用@Before,@After,@Around定义建言(advice),可直接将拦截规则(切点)作为参数。
  • 其中@After,@Before,@Around参数的拦截规则为切点(PointCut),为了使切点复用,可使用@PointCut专门定义拦截规则,然后在@After,@Before,@Around的参数中调用。
  • 其中符合条件的每一个被拦截处为连接点(JoinPoint)

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值