第一节 安装jdk
第一步、浏览器访问:https://www.oracle.com/java/technologies/javase-downloads.html
第二步、点击JDK Download进入版本选择页选择Windows版本下载
第三步、双击下载好的JDK安装文件,选择合适的安装目录进行安装。
配置JDK
第一步、点击计算机——>属性—>高级系统设置-——>高级–>环境变量:
第二步、新建JAVA_HOME和CLASSPATH变量和修改Path变量
JAVA_HOME为JDK的安装目录;
CLASSPATH为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
在Path最后添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
第三步、运行CMD输入java -version显示版本信息表示安装成功
安装Maven
安装Maven
第一步、浏览器访问https://maven.apache.org/download.cgi,选择需要的版本下载;
第二步、解压缩下载好的MAVEN文件,选择合适的安装目录进行安装。
配置Maven
第一步、点击计算机——>属性—>高级系统设置-——>高级–>环境变量:
第二步、新建M2_HOME变量和修改Path变量:
M2_HOME为MAVEN的安装目录;
在Path最后添加%M2_HOME%\bin;
第三步、设置MAVEN的安装目录中conf目录中的settings.xml:
仓库目录位置
在内加入阿里云镜像:
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
第四步、运行CMD输入mvn -version显示版本信息表示安装成功:
安装Redis
安装Redis
第一步、浏览器访问https://github.com/microsoftarchive/redis/tags(此为windows版本,如在Linux上请访问https://redis.io/download):
第二步、解压缩下载好的Redis安装文件,选择合适的安装目录进行安装;
第三步、运行CMD在redis所在目录启动,运行命令:redis-server redis-windows.conf:
第四步、避免关闭窗口不可访问,添加Redis服务到windows服务中:
(1)在redis.windows-service.conf配置文件中查找requirepass并设置Redis服务密码:
requirepass 123456
(2)添加命令:redis-server --service-install redis.windows-service.conf --loglevel verbose
常用的redis服务命令:
(1)卸载服务:redis-server --service-uninstall
(2)开启服务:redis-server --service-start
(3)停止服务:redis-server --service-stop
第五步、在CMD中运行命令,测试Redis安装是否完成:
(1)运行redis-cli通过客服端命令登录Redis服务;
(2)输入auth 123456通过Redis服务认证;
(3)输入set a 1和get a测试Redis服务是否正常工作,输入exit退出Redis客户端;
开发实例
建表
浏览器访问:https://start.spring.io:
(1)项目构建工具是 Maven 还是 Gradle,Java后端目前来看还是Maven为主,因此这里选第一项;
(2)开发语言,当然是选择Java;
(3)Spring Boot 版本,默认选择的就是当前最新的稳定版本;
(4)既然是 Maven 工程,当然要有项目坐标,项目描述等信息了,另外这里还让输入了包名,应为创建成功后会自动创建启动类;
(5)Packing 表示项目要打包成 jar 包,还是 war 包,Spring Boot 的一大优势就是内嵌了 Servlet 容器,打成 jar包后可以直接运行,所有这里建议打成 jar 包,当然,根据实际情况,也可以选择war包;
(6)然后选择构建的 JDK 版本;
(7)最后是选择所需要的依赖,输入关键字,如 web ,会有相关的提示,这里先加入 web 依赖;
(8)所有的事情完成之后,点击最下面的 Generate Project 按钮,或者点击 Alt + Enter 按键,此时会自动下载项目,将下载下来的项目解压,然后用 IntelliJ IDEA 或者 Eclipse 打开即可进行开发。
打开项目
第一步、在项目pom.xml文件中添加依赖
<–Lombok注释 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!-- Druid依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
第二步、在resource文件夹下的application.yml中添加配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=UTC
username: root
password: 123456
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 配置测试查询语句
validationQuery: SELECT 1 FROM DUAL
# 初始化大小,最小,最大
initialSize: 10
minIdle: 10
maxActive: 200
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 180000
testOnBorrow: false
testWhileIdle: true
removeAbandoned: true
removeAbandonedTimeout: 1800
logAbandoned: true
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxOpenPreparedStatements: 100
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j,config
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
第三步、创建Druid的Servlet和Filter监控配置类:
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
/**
* druidServlet注册
*/
@Bean
public ServletRegistrationBean druidServletRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
registration.addUrlMappings("/druid/*");
return registration;
}
/**
* druid监控 配置URI拦截策略
*/
@Bean
public FilterRegistrationBean druidStatFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*");
//添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter(
"exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
//用于session监控页面的用户名显示 需要登录后主动将username注入到session里
filterRegistrationBean.addInitParameter("principalSessionName", "username");
return filterRegistrationBean;
}
/**
* druid数据库连接池监控
*/
@Bean
public DruidStatInterceptor druidStatInterceptor() {
return new DruidStatInterceptor();
}
@Bean
public JdkRegexpMethodPointcut druidStatPointcut() {
JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
String patterns = "com.example.demo.service.*";
//可以set多个
druidStatPointcut.setPatterns(patterns);
return druidStatPointcut;
}
/**
* druid数据库连接池监控
*/
@Bean
public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() {
BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator();
beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class);
beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
return beanTypeAutoProxyCreator;
}
/**
* druid 为druidStatPointcut添加拦截
*/
@Bean
public Advisor druidStatAdvisor() {
return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor());
}
}
第四步、浏览器访问:http://localhost:8080/druid/