教妹学Java:Spring 入门篇

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

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

教妹学Java:Spring 入门篇

我有一个漂亮如花的妹妹(见上图),她叫什么呢?我想伶俐的读者能猜得出:缄默王三,没错,年方三六。怙恃正思量让她向我学习,做一名正儿八经的 Java 程序员。我期初是否决的,由于程序员这行业容易掉头发。但家命难为啊,与其否决,不如做点更努力的事情,比如说写点有趣的文章教教她。

教妹学Java:Spring 入门篇

“二哥,你怎么现在才想起来要教我学 Spring 啊?”

“没办法啊,三妹,之前教妹学 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:为分布式开发提供了壮大的工具集

ASP.NET Core 快速入门(Razor Pages + Entity Framework Core)

3)Spring Security:通过认证和授权珍爱应用

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

5)等等等等

04、快速搭建 Spring 项目

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

“马上就来,三妹。”

我推荐使用 Intellij IDEA 作为集成开发工具,由于它插件厚实、功效周全。就我们现在的开发义务来说,社区版足够用了。

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

教妹学Java:Spring 入门篇

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 的依赖包了。

教妹学Java:Spring 入门篇

5)Maven 是一个软件项目治理工具,基于项目工具模子(Project Object Model,明了 pom.xml 的由来了吧?)的观点,可以治理项目依赖的 jar 包,对项目举行编译打包等。

6)新建 HelloService 类,代码如下:

@Service
public class HelloService {
    public void hello (String what) {
        System.out.println("hello " + what);
    }
}

@Service 注解一样平常在营业逻辑层使用。该类异常简朴,只有一个方式 hello(),参数是字符串,然后在控制台打印 hello xxx

7)新建 HelloConfig 类,代码如下:

@Configuration
public class HelloConfig {
    @Bean
    public HelloService helloService() {
        return new HelloService();
    }
}

@Configuration 注解解释当前类是一个设置类,相当于 Spring 设置的一个 xml 文件。

@Bean 注解用在 helloService() 方式上,解释当前方式返回一个 Bean 工具(HelloService),然后将其交给 Spring 治理。发生这个 Bean 工具的方式只会被挪用一次,随后 Spring 将其放在自己的 IOC 容器中。

8)新建 HelloMain 类,代码如下:

public class HelloMain {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(HelloConfig.class);
        HelloService helloService = context.getBean(HelloService.class);
        helloService.hello("66666");
        context.close();
    }
}

HelloMain 类中有一个 main() 方式,它卖力将当前项目跑起来。

AnnotationConfigApplicationContext 是一个用来治理注解 Bean 的容器,可以将 @Configuration 注解的类 Class 作为参数获取容器工具。再通过 getBean() 方式获取注册的 Bean 工具。获取到 HelloService 工具后,就可以让它说一声“66666”了。

教妹学Java:Spring 入门篇

“二哥,这篇文章中的示例代码你上传到码云了吗?最近 GitHub 接见起来有点卡。”

“你到挺知心啊,三妹。码云传送门~

“二哥,你教得真不错,我完全学会了,一点也不死板。”

“那必须滴啊,期待下一篇吧?”

“那是固然啊,期待,异常期待,望眼欲穿的感受。”

教妹学Java:Spring 入门篇

05、鸣谢

请允许我热情地吐槽一下,这篇文章我不希望再被喷了,看在我这么辛劳搞原创(创意+干货+有趣)的份上,多激励激励好不好?别瞅了,点赞呗,你最美你最帅。

若是以为文章对你有点辅助,请微信搜索「 缄默王二 」第一时间阅读,回复【666】【1024】更有我为你经心准备的 500G 高清教学视频(已分门别类),以及大厂手艺牛人整理的面经一份。

原创文章,作者:admin,如若转载,请注明出处:https://www.2lxm.com/archives/631.html