目录
技术点:
熟悉快速开发框架:SpringBoot2.3.x 整合 SpringMVC + Mybatis(三个加起来叫SSM框架)
熟悉版本控制:Maven3.6.X + Git
数据库以及文件存储:MySQL + 文件存储阿里云OSS
熟悉页面模板引擎:Thymleaf3.x
第三方工具:网页长图生成工具Wkhtmltopdf + 验证码生成工具kaptcha
中间件:分布式缓存Redis + 全文检索ElasticSearch + Kafka + 本地缓存Caffeine(1.Redis是NoSql数据库,能将数据存在内存里,在适当的适合把内存中的数据存在硬盘上,因为Redis是操作内存的数据库所以它性能很高,适用于性能高的业务以提高服务器的处理能力。2.kafka是性能最好的消息队列的服务器,该项目中所有的消息都由kafka发布)
权限框架:Spring Securtiy + Spring Actuator(1.Spring Security可以管理权限,让每个功能被正确的人访问,用来提高系统的安全性。2.Spring Actuator对系统进行监控,让运维的人随时掌握项目状况)
熟悉前端:Ajax + Vue + BootStrap + HTML + jQuery
构建项目工具(Maven)包括对项目的编译测试打包生成文档等
版本控制工具(git):为了备份以及便于团队成员之间的相互合作
1.搭建开发环境
1.构建项目工具(Maven)官网:http://maven.apache.org
对项目的编译 测试 打包 生成文档等;管理项目中的jar包
什么是jar包(原文链接:https://blog.csdn.net/u010804417/article/details/100654342)
jar包就是java类在编译生成的class文件后进行打包的压缩包,jar包里面就是.class文件。
JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。
通常用于聚合【大量的Java类文件、相关的元数据和资源(文本、图片等)文件】到一个文件,以便开发Java平台应用软件或库。
2.maven仓库:存放构件的位置
什么是构件?在构建项目时所要依赖的资源(插件jar包等)
本地仓库:~/.m2/repository (从远程仓库下载的资源也会放到这里)
~即家目录是指用户->administrator
远程仓库:中央仓库、镜像仓库、私服仓库
镜像仓库也称第三方仓库(阿里云仓库)
本地仓库和远程仓库的联系:当maven想下载构件的时候会看一下本地仓库里有没有,如果有就用,如果没有就从远程仓库下载到本地仓库用。
3.下载好maven后,在conf->settings.xml里面,将默认可以访问的远程仓库改为阿里云仓库。把bin加到环境变量里,直接用cmd访问。
下图为在命令行创建一个maven项目,生成项目(src(main(java),test),pom.xml)
下图为用maven编译项目,编译后,项目里会多一个target文件,点开target里的classes,里面是编译好的类
下图为清除刚才的编译结果,准备重新编译
清理完测试(test里面包含编译)
4.安装idea
idea可以帮我们调maven命令
idea里面利用build project进行编译
5.利用Spring Initializr来创建SpringBoot项目
SpringBoot以jar包的方式里嵌了Tomcat服务器。
在External Libraries里面可以看到下载的包
6.SpringBoot核心功能:起步依赖、自动配置、端点监控
spring-boot-starter依赖的不是一个包而是一堆包
如果不用SpringBoot要想启动web项目得配置许多东西,但是利用SpringBoot,几乎不用任何配置就可以把服务启动起来。
端点监控:项目上线后,对项目的运行状况进行监控
一个简单的处理客户端请求案例:
@Controller
@RequestMapping("/alpha")
public class AlphaController {
@RequestMapping("/hello")
@ResponseBody
public String sayHello() {
return "Hello Spring Boot.";
}
}
2.Spring入门
1.官网:https://spring.io
Spring Framework(基石核心)
Spring Boot(构建项目)
Spring Cloud(微服务,把大项目拆分成若干个子项目,然后再把他们集中在一起,每个子项目比较小就便于维护了,但同时开发难度也会提升)
Spring Cloud Data Flow(客户端很多的时候,做数据集成)
2. Spring Core: IoC、AOP(都是用来管理对象的一种思想)
由Spring管理的对象通常叫做Bean
IoC是基于面向对象的一种管理对象的思想
AOP是一种面向切面编程的思想,是对面向对象的一种补充
Spring有了这两种思想能够管理一切Bean
Spring Data Access:Transactions(管理事务)、SpringMyBatis(整合MyBatis)
Web Servlet:SpringMVC(web开发)
Integration:Email、Scheduling(定时任务)、AMQP(消息队列、发送消息)、Security(安全控制)
3.Spring IoC
降低Bean之间的耦合度,便于项目管理
在Spring容器管理bean的前提下,bean与bean之间不会直接产生关联,关联关系是体现在配置当中的,bean的耦合度就会降低。
@ComponentScan是组件扫描(扫描配置类CommunityApplication所在的包以及子包的bean)
加了注解才会被扫描到
以下为test:
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)//以这个为配置类
public class CommunityApplicationTests implements ApplicationContextAware {//如果想要得到Spring容器,可以implements ApplicationContextAware
private ApplicationContext applicationContext;//Spring容器
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;//当程序运行启动的时候
}
}
@Test
public void testApplicationContext() {
System.out.println(applicationContext);//打印出来看看applicationContext是什么对象
//从applicationContext中自动获取其装配的bean
AlphaDao alphaDao = applicationContext.getBean(AlphaDao.class);
System.out.println(alphaDao.select());
alphaDao = applicationContext.getBean("alphaHibernate", AlphaDao.class);
System.out.println(alphaDao.select());
}
@primary有更高的优先级
@Repository("alphaHibernate")//自定义bean的名字