background

在学习完基本的java语法之后, 需要使用一些开源框架了, 这些框架最好是基于项目实现的。因此我打算基于牛客这个java项目[1]去做, 牛客的项目可以说是对新手非常友好的, 相信这个项目也能够帮助入门java。

content

项目介绍

项目需求

基于牛客的讨论区、账号管理、消息管理、用户管理等功能。

技术架构

spring boot
spring 、spring MVC, MyBatis (SSM)
Redis、 Kafka、 ES
Spring Security、 Spring Actuator

开发环境

项目的构建:MAVEN
集成开发工具:IDEA
数据库: mysql、 Redis
应用服务器: Tomcat
版本控制: git
其他工具: postman、

Study

maven

他就是一个pip用来管理创建测试项目,管理项目中的jar包。 一般就是下载之后解压, 然后修改xml内容为国内的镜像, 修改完成之后将bin目录设置成环境变量, 然后通过命令行访问maven。 效果如下, 我们简单操作一下基本的命令, 后续我们都是将其集成到IDE中,不用命令执行了。

Java后台开发流程 java做后端开发_开发语言


然后我们使用创建项目命令去创建maven结构的项目:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

可以看到如下图会从aliyun里面去下载一些jar包,下载完成后我们的项目就构建成功了。

Java后台开发流程 java做后端开发_java_02


然后我们执行mvn compile 去编译项目,会生成class文件 , 还可以进行test 去测试一下项目执行得效果 如下图所示。 此外第三方得包都是在本地maven仓库里去下载完成了。

Java后台开发流程 java做后端开发_Java后台开发流程_03

后续我们都不是自己手动命令编译项目, 而是通过IDE,因此我们需要使用ITEA配置好maven路径, 并创建一个maven结构得项目。

Java后台开发流程 java做后端开发_java_04


之后我们就可以在IDE中使用maven可视化去编译和测试项目。

Java后台开发流程 java做后端开发_spring_05


但是maven管理项目下载第三方包是比较麻烦得,一般都是去官方maven:https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.29中去找jar包得dependency到本地prom.xml文件中, 然后编译得时候自动下载。

Java后台开发流程 java做后端开发_java_06


但是这样有个问题, 每一个包都要手动得添加, 而且我们不知道这个包是好还是坏, 尤其是spring要下载160个包。

Spring

Spring 全家桶有四个部分。
spring framwork是核心,
boot是基石可以用来构建项目, 搭建项目更为方便。
cloud是分布式得项目
cloud data flow 用于多个客户端集合数据。

Spring boot 将很多包按照功能进行了划分,通过选择依赖, 加载其他依赖包, 可以通过spring.io 去设置spring boot配置。

Java后台开发流程 java做后端开发_maven_07


最后我们将生成项目用IDE再打开, 这时候会加载很多包(包含服务器得包), 我们运行一下就可以启动了。 然后我们使用127.0.0.1:8080去访问。

Java后台开发流程 java做后端开发_Java后台开发流程_08

我们还可以去编写一个代码简单得测试一下返回是否有内容。 添加如下得代码。

Java后台开发流程 java做后端开发_开发语言_09


得到如下得结果, 可以看出我们得访问是正确得。

Java后台开发流程 java做后端开发_开发语言_10

spring framwork

  1. IOC(Inversion of control )是spring所有功能得基础, 是一种面向对象得编程设计思想。 常见面向对象思想 开发是A中加一个函数传入B , 但是如果B修改了, A也得改。 这个方式是耦合比较大得。 但是IOC是通过依赖注入去解决模型得交互。 例如我们将接口用两个类实现之后, 我们将其通过注解设置到容器中,而调用方因为是用接口访问方法bean得, 因此不需要改这边得代码,更为解耦, 也可以直接写死, 不用接口, 都行。 除了创建bean之外, 还有销毁等, 可以进行统一管理 , 而且这些bean每个默认都是单例得, 但是可以改。
  2. 有时候我们需要别人jar写得bean,需要自己写个配置类去装配别人得类 到bean中去用。
  3. 一般我们不用去get容器, 只需要@Autowired去直接注入容器到自己得属性, 非常节省时间, 如果注入不进去会报错得。
  4. 最常用得场景就是在controller层通过直接@Autowired直接获取service包中得对象得方法, 而这个方法里面也注解依赖于mybatis。 非常解耦。

spring MVC

  1. MVC就是spring用于开发web项目的组件, controller 调用业务层生成Model, view将model 渲染返回到前端。 这三层都是完成表现层工作。
  2. 其核心就是DispatcherServlet 组件实现的, 底层原理就是请求过来DispatcherServlet 发送到contoller注释的方法, 然后将数据搞成model ,然后model 数据渲染到模板引擎中,拼出html返回给前端 。
  3. 一般这个渲染引擎是Thumeleaf, 他的语法和html非常类似, 别人很容易看懂, 相比较jsp模板更为容易看懂。 无论什么模板引擎都是三部分, 表达式、判断、布局设置。