仿牛客项目总结(一)

目录

技术点:

1.搭建开发环境

2.Spring入门

3.SpringMVC入门

4.MyBatis入门

5.开发社区首页

6.项目调试技巧

7.版本控制


技术点:

熟悉快速开发框架: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的名字

3.SpringMVC入门

4.MyBatis入门

5.开发社区首页

6.项目调试技巧

7.版本控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值