1.前三甲的语言
TIOBE(1~3月)Java,C,Python
(3月后C++奋起直追,挤走Pyhton)Java,C,C++
2.Java开发框架
SSM,SSH,Spring Boot
3.Spring概述
Spring框架是一个轻量级的企业级的开发的一站式解决方案。所谓解决方案就是可以基于Spring解决Java EE开发的所有问题。Spring框架主要提供了IoC容器,AOP,数据访问,Web开发,消息,测试等相关技术支持。
Spring使用简单POJO(即无任何限制的普通Java对象)来进行企业级开发。每一个被Spring管理的Java对象称之为Bean;而Spring提供一个IoC容器用来初始化对象,解决对象间的依赖管理和对象的使用。
4.Maven简介
Apache Maven是一个软件项目管理工具。基于项目对象模型(Project Object Model,POM)的概念,Maven可用来管理项目的依赖、编译、文档等信息。
使用Maven管理项目时,项目依赖的jar包将不再包含在项目内,而是集中放置在用户目录下的.m2文件夹下。
5.一些代码解释
- @Configuration声明当前类是一个配置类
- 使用@ComponentScan,自动扫描包名下所有使用@Service、@Component、@Repository和@Controller的类,并注册为Bean
- 使用AnnotationConfigApplicationContext作为容器,接受输入一个配置类作为参数
- Context.getBean(UseFunctionService)获得声明配置的UseFunctionService的Bean
6.Enable*注解的工作原理
6.1第一部分
- @EnableAspectJAutoProxy开启对AspectJ自动代理的支持
- @EnableAsync开启异步方法的支持
- @EnableScheduling开启计划任务的支持
6.2第二部分
- @EnableWebMvc开启Web MVC的配置支持
6.3第三部分
- @EnableConfigurationProperties开启对@ConfigurationProperties注解配置Bean的支持
- @EnableJpaRepositories开启对Spring Data JPA Repository的支持
- @EnableTransactionManagement开启注解式事务的支持
- @EnableCaching开启注解式的缓存支持
作用: 通过简单的@Enable*开启一项项功能的支持,从而避免自己配置大量的代码,大大降低使用难度。
实现原理: 所有的注解都有一个@Import注解,@Import是用来导入配置类的,这也就意味着这些自动开启的实现其实也就是导入一些自动配置的Bean。这些导入的配置方式主要分为以下三种类型:直接导入配置类、依据条件选择配置、动态注册Bean
7.Spring MVC概述
MVC之间的关系:
8.Spirng MVC的常用注解
- @Controller
@Controller注解在类上表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatcher Servlet会自动扫描注解了此注解的类,并将Web请求映射到注解了@RequestMapping的方法上
- @RequestMapping
@RequestMapping注解是用来映射Web请求(访问路径和参数)、处理类和方法的。@RequestMapping可以注解在类或者方法上。注解在方法上的@RequestMapping路径会继承注解在类上的路径,@RequestMapping支持Servlet的request和response作为参数,也支持对request和response媒体类型进行配置
- @ResponseBoby
@ResponseBoby支持将返回值放在response体内,而不是返回一个页面。
- @RequestBoby
@RequestBoby允许request的参数在request体中,而不是直接链接在地址后面。此注解放置在参数前
- @PathVariable
@Path Variable用来接收路径和参数,可接收001作为参数,此注解放置在参数前
- @RestController
@RestController是一个组合注解,组合了@Controller和@ResponseBoby,这就意味着当你只开发一个和页面交互数据的控制的时候,需要使用此注解。若没有此注解想要实现上述功能,则需自己在代码中加@Controller和@ResponseBoby两个注解
9.官方starter pom
| 名称 | 描述 |
|---|---|
| spring-boot-starter | Spring Boot核心starter,包含自动配置、日志、yaml配置文件的支持 |
| spring-boot-starter-actuator | 准生产特性,用来监控和管理应用 |
| spring-boot-starter-aop | 使用spring-aop和AspectJ支持面向切面编程 |
| spring-boot-starter-batch | 对Spring Batch的支持 |
| spring-boot-starter-data-jpa | 对JPA的支持,包含spring-data-jpa、spring-orm和Hibernate |
| spring-boot-starter-jdbc | 对JDBC数据库的支持 |
| spring-boot-starter-thymeleaf | 对Thymeleaf模板引擎的支持,包含于Spring整合的配置 |
| spring-boot-starter-web | 对Web项目开发的支持,包含Tomcat和spring-webmvc |
10.Docker
10.1含义
Docker是一个轻量级容器技术,类似于虚拟机技术(xen,kvm,vmware,virtualbox)。Docker是直接运行在当前操作系统(Linux)之上,而不是运行于虚拟机中,但也实现了虚拟机技术的资源隔离,性能远远高于虚拟机技术。
10.2优势
1.Docker支持将软件编译成一个镜像。
2.各大主流云计算平台都支持Docker容器技术。
11.Spirng Data JPA
11.1含义
1.JPA是一个基于O/R映射的便准规范。
2.JPA的主要实现是由Hibernate、EclispseLink和OpenJPA等
Spring Data JPA 是Spring Data的一个子项目,它通过提供基于JPA的Repository极大地减少了JPA作为数据访问方案的代码量。
12.定义数据访问层
使用Spring Data JPA建立数据访问层,只需定义一个维承JpaRepository 的接口即可。
13.配置使用Spring Data JPA
在Spring环境中,使用Spring DataJPA可通过@EnableJpaRepositories注解来开启SpringData JPA的支持,(@EnableJpaRepositories接收的value参数用来扫描数据访问层所在包下的数据访问的接口定义。
14.Spring Boot下的Spring Data JPA
14.1使用方法
Spring Boot自动开启了对Spring Boot JPA的支持,即我们无须在配置类中显示声明@EnableJPARespositories。在Spring Boot下使用Spring Data JPA,在项目的Maven依赖里添加spring-boot-starter-data-jpa,然后只需定义DataSource、实体类和数据访问层,并在需要使用数据访问的地方注入数据访问层的Bean即可,无须任何额外配置。