SpringBoot 第二章
一、JDK 1.8 的安装
- 官网下载最新版本的 JDK。
// JDK 是开发环境,JRE是运行环境。
// 1、内置的 JRE
JDK 安装目录下有默认的 JRE
// 2、外置的 JRE
JDK 同级目录下的 JRE ,可以不安装。
公共的 JRE 会向IE浏览器和系统中注册Java运行环境,通过这种方式,系统中的任何程序都可以使用公共JRE。
// 3、如果没有安装公共的 JRE ,系统在运行的时候会报出,不能够找到对应的 JRE ,需要用户自己将 JDK 内的 JRE 目录配置到环境变量中才能直接使用。
// 4、两种都安装时最好不过的了,既可以开发,也可以运行。
- 安装,安装 JDK 中内置的 JRE 以及外置的JRE。
- 环境配置,作者喜欢配置在用户变量的位置,也可以配置在系统变量的位置,具体的区别就是作用范围大小。
// 配置全局环境变量
JAVA_HOME JDK 打开到安装目录的路径
// 系统环境变量的一种,用于保存一系列的路径,每个路径之间以分隔好分隔。当运行一个可执行文件的时候,操作系统首先会在当前目录下查找,然后再定义的路径下寻找该文件。
PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre/bin
// 系统环境变量的一种。当Java虚拟机需要运行一个类时,会在classpath环境变量中所定义的路径下寻找所需的class文件和类包。
CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
二、最新版本maven的配置
- Maven 是项目构建工具,能把项目抽象成POM(project object model),Maven 使用 POM 对项目进行构建、打包、文档化等操作。最重要的是解决了项目需要类库的依赖管理,简化了项目开发环境搭建的过程,使得我们的开发变得很容易。
- Maven 的核心是 pom.xml
1、groupId:表示项目所属的组,通常是一个公司或者是组织的名字。
2、artifactId:项目的唯一标识,可以作为项目的名字。
3、packaging:项目的类型。jar、war 以及 pom。
3.1、三种包的作用不同。
4、version:项目的版本号。
4.1、项目版本号分三段:主版本号.次版本号.修订版本号
4.1.1、主版本号:代表架构变动或者不兼容实现
4.1.2、次版本号:兼容性修改、功能增强
4.1.3、修订版本号:bug修复
5、modelVersion:代表 pom 文件的 Maven 的版本。
6、depen…… 等依赖管理内容。
6.1、scope :代表此类库与项目的关系,默认的是 compile ,也就是在编译和打包都需要此类库。test 表示仅仅在单元测试的时候需要。provided 表示在编译阶段需要此类库,但打包阶段不需要,这是因为项目的目标运行环境已经提供了。runtime 表示编译和打包的时候都不需要,在运行的时候需要,比如数据库驱动。
6.2、在之前文章中给出的 Maven 依赖的网址中,依赖的内容已经标明了类库和项目的关系,不需要更改,请放心使用。
7、build :可选。设置多个插件,用来辅助项目构建。
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<confinguration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</confinguration>
</plugin>
</plugins>
</build>
三、IoC(控制反转)与Bean容器、注解、AOP(切面编程)
- Spring 的内容。SpringBoot、SpringFramework、SpringData、SpringCloud。以后慢慢学习。
- IOC 反转控制 以及 DI 依赖注入。相对于 Bean 直接构造依赖的对象。
传统的企业应用代码:
接口 UserService
实现类 UserServiceImpl implements UserService
实现类编写私有全局的 注入Service
例如:private CreditUserService creditUserService = new CreditUserService ();
使用工厂,或者由工厂去创建。
CreditUserServiceFactory.getService();
ServiceFactory.getSerice(CreditUserService .calss);
@Service : 声明为一个 Spring 管理的 Bean,由Spring进行初始化和增强。
@Autowired : 在Spring容器中查找一个已经初始化好的 Bean 。
Spring 的常用注解
- @Controller 与 @RequestMapping 一起使用。
- @Service 声明此类是一个业务处理类,通常与 @Transactional 使用。
- @Repository 此类是一个数据库或者其他 NoSQL 访问类。
- @ResController:同Controller,用于 REST 服务。
- @Component:声明此类是一个 Spring 管理的类,通常用于无法使用上述注解描述的Spring管理类。
- @Configuration:声明此类是一个配置类,通常与注解 @Bean 配合使用。
- Bean:作用在方法上,声明该方法执行的返回结果是一个Spring容器管理的Bean。
- Spring 负责实例化Bean,开发者可以提供一系列的回调函数,用于进一步配置Bean,包括@PostConstruct(初始化) 和 @PreDestroy(销毁之前)。
Spring AOP 介绍
AOP 提供另外一种思路来实现应用系统的公共服务。
1、每个业务方法的调用的权限管理。
2、每个方法调用的审计,记录谁调用了什么业务方法,传入了什么参数,操作是否成功。
3、数据库管理。开启事务,执行成功后提交事务,执行出错,则回滚事务。
4、缓存,对业务方法返回的数据进行缓存,下次调用的时候,参数未变,直接从缓存获取数据。
- @Configuration 用于声明一个 Spring 管理配置的 Bean,引起Spring的注意。
- @Aspect 声明这是一个切面类。
- @Around 声明一个表达式,描述织入的目标的特性。
- @within 表示目标类带有注解的时候,会执行 Spring Aop 的方法。
- 织入的方法 的参数是 final ProceedingJoinPoint pjp 。
- 通常切面完成之后还要继续调用原有的业务逻辑,并将返回对象正常返回。 pjp.proceed();