学妹抱怨Spring入门太难了,我用一篇文章彻底征服了她(1)

简介: 学妹抱怨Spring入门太难了,我用一篇文章彻底征服了她

你好呀,我是沉默王二,一个和黄家驹一样身高,刘德华一样颜值的程序员(管你信不信呢)。从两位偶像的年纪上,你就可以断定我的码龄至少在 10 年以上,但实话实说,我一直坚信自己只有 18 岁,因为我有一颗好学的心。本篇文章就打算通过我和三妹对话的形式来学一学“Spring 的基础”。


教妹学 Java,没见过这么放肆的标题吧?“语不惊人死不休”,没错,本篇文章的标题就是这么酷炫,不然你怎么会点进来?



我有一个漂亮如花的妹妹(见上图),她叫什么呢?我想聪明的读者能猜得出:沉默王三,没错,年方三六。父母正考虑让她向我学习,做一名正儿八经的 Java 程序员。我期初是反对的,因为程序员这行业容易掉头发。但家命难为啊,与其反对,不如做点更积极的事情,比如说写点有趣的文章教教她。


“没办法啊,三妹,之前教妹学 Java 系列被喷的体无完肤,没办法就停滞了。今天决定走自己的路,让别人也走自己的路去。”


“我就说嘛,Spring 在 Java 中占据那么重要的位置,你竟然没舍得教我,还以为你怕被我拍死在沙滩上呢?”


“嗯,你天真了。”


01、Spring 简史


“二哥,据说 Spring 前后经历了 3 个时代,你能给我说说吗?”


“没问题啊。”


1)石器时代


也就是 Spring 1.x 时代,一个项目看上去全都是 xml 文件,里面配置着各种各样的 bean,项目越大,xml 文件就越多,到最后人都感觉不好了,像回到了原始社会。


2)黑铁时代


也就是 Spring 2.x 时代,终于可以使用注解配置 bean 了,这主要得益于 JDK 1.5 新增的注解功能。想一想,一个小小的注解,比如说 @Component 、@Service 就可以替代一大段的 xml 配置代码,简直爽歪歪啊。


使用 xml 文件配置数据源,使用注解配置业务类,两种方式相得益彰。


3)黄金时代


也就是 Spring 3.x 至今,可以使用 Java 配置的方式了。那什么是 Java 配置呢?


其实从形式上看,Java 配置和注解配置没什么区别,因为 Java 配置也用的是注解,只不过,以前用 application-context.xml 配置数据源等信息,现在用 @Configuration 注解的类配置。


02、Spring 特性


“二哥,据说 Spring 的特性非常丰富,你能给我说说吗?”


“没问题啊。”


1)核心技术:依赖注入(DI)、面向切面编程(AOP)、国际化、数据绑定、类型转换


2)测试:TestContext 框架、Spring MVC 测试


3)数据访问:事务、JDBC、对象关系映射(ORM)


4)Spring MVC(一个模型 - 视图 - 控制器「MVC」的 Web 框架)、Spring WebFlux(一个典型非阻塞异步的框架)


5)Spring Integration(面向企业应用集成)


03、Spring 生态


“二哥,据说 Spring 的生态圈非常火热,你能给我说说吗?”


“没问题啊。”


1)Spring Boot:当下最火的一个 Spring 项目了,使用它我们可以快速搭建好一个项目


2)Spring Cloud:为分布式开发提供了强大的工具集


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


4)Spring Web Flow:基于 Spring MVC 的流程式 Web 应用


5)等等等等


04、快速搭建 Spring 项目


“二哥,说了那么多,能不能来个上手项目,让我瞧瞧 Spring 项目到底长什么样子?”


“马上就来,三妹。”


我推荐使用 Intellij IDEA 作为集成开发工具,因为它插件丰富、功能全面。就我们目前的开发任务来说,社区版足够用了。


1)打开 IDEA,依次点击 File→New→Project→Maven。


image.png


2)点击 Next 后填写项目的名称,然后创建项目。打开 pom.xml 文件,添加以下内容。


<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>


dependencies 节点下添加了 Spring 的核心依赖 spring-context,它为 Spring 提供了一个运行时的环境,用以保存各个对象的状态。它依赖于 Spring 的四个核心组件:spring-aop、spring-beans、spring-core、spring-expression,也就是说只要引入 spring-context 的依赖,Maven 会自动引入这四个核心。


build 节点下添加了 Maven 的编译插件,并且指定了 Java 的编译版本为 1.8。


3)IDEA 下编辑文件会自动保存,所以与此同时,Maven 会将 Spring 的依赖包全部下载到本地仓库中。


4)稍稍眯一会眼睛,就可以看到 Spring 的依赖包了。


image.png



相关文章
|
20天前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
23 1
|
20天前
|
XML druid Java
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
25 0
|
9天前
|
监控 安全 Java
Spring Boot最佳实践:从入门到精通
Spring Boot最佳实践:从入门到精通
|
23天前
|
Java 开发者 Spring
从入门到精通,Spring 框架带你玩转 Java 企业应用开发!
【6月更文挑战第25天】Spring框架简化了Java企业开发,通过依赖注入降低耦合,如使用构造函数注入`UserService`中的`UserDao`。它还提供声明式事务管理,如`@Transactional`注解自动处理事务,减少手动错误。此外,Spring的AOP支持允许在不侵入业务逻辑的情况下实现横切关注点,如`LoggingAspect`所示。无论是新手还是资深开发者,Spring以其全面的功能和灵活性成为企业应用开发的强大工具。
|
16天前
|
前端开发 Java 数据库连接
Spring6(一):入门案例
Spring6(一):入门案例
11 0
|
17天前
|
监控 安全 Java
Spring Boot最佳实践:从入门到精通
Spring Boot最佳实践:从入门到精通
|
1月前
|
XML 存储 Java
Spring 6(一)【Spring 入门】
Spring 6(一)【Spring 入门】
|
20天前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
18 0
|
20天前
|
XML Java 数据库
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
15 0
|
20天前
|
SQL Java 数据库连接
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
16 0