Intellij Idea

  • 背景
  • 开发工具及主要框架
  • Maven
    • 下载安装
    • settings.xml修改
    • IDEA配置Maven
    • 注册私有jar
    • Maven打包
  • MySql安装
    • 配置环境变量
  • Intellij Idea
    • 新建Spring Boot工程
    • 配置数据库
    • 配置MyBatis
    • 启动
    • 配置Spring boot默认启动页
    • 连接MySql

背景

自从前段时间被拉过来参与Java项目开发后,到现在也算告一段落了(半年过去了,要回到主业Android开发了),一个完整的项目结束了;因为是第一次参与实际Java项目开发,并且只是负责其中的一些模块开发,所以对整个项目的流程没有清晰的把握;比如这个项目是如何创建的,怎么运行的,使用的一些框架等,今天就通过这篇文章梳理下

开发工具及主要框架

开发工具:Intellij Idea,这个工具就不多说了,主流的Java开发工具
使用框架:

  • SpringBoot:如果不使用它,那么构建一个项目的程序还是挺麻烦的,但是使用它后极大简化新 Spring 应用的初始搭建以及开发过程,让应用部署变的简单(SpringBoot内置服务器,并装备启动类代码),可以快速开启一个Web容器进行开发;它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了大量框架

  • mybatis:是一款支持普通 SQL查询,存储过程和高级映射的优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录

  • redis:全称Remote Dictionary Server,是一个基于键值对形式的非关系型数据库,性能极高(Redis能读的速度是110000次/s,写的速度是81000次/s),且数据之间没有耦合性,水平扩展很方便,特点有:

    • 支持的数据类型很丰富(Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作);
    • Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的;多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来
    • Redis还支持 publish/subscribe, 通知, key 过期等特性
  • quartz:是个开源的作业调度框架,不需要你自己管理那些繁琐的定时任务了

  • angularjs: 是一个开源的前端Js框架,通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML,核心特点有:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等

这里只列举一些主要框架,这篇文章就不详细介绍这些框架的细节了,后续看情况再写,今天的主题是怎么通过IDEA工具创建一个Spring Boot + Maven 项目,并成功运行起来

Maven

因为是使用maven管理第三方依赖等这些框架,同时它也是专门用来构建和管理Java项目,所以就需要先下载安装Maven

下载安装

官方下载地址:http://maven.apache.org/download.cgi

  1. 下载下来后就是一个压缩包,然后解压,如图

  2. 然后配置环境变量:MAVEN_HOME = D:\maven\apache-maven-3.2.3,还有一个是可选的:MAVEN_OPTS = -Xms128m -Xmx512m ,合理的增大运行所需内存可以加快Maven构建速度;最后在PATH变量里加上 %MAVEN_HOME%\bin

  3. 最后验证是否安装成功:打开cmd,输入 mvn -v ,看输出如图,你就成功了

settings.xml修改

使用Maven最直接的一个好处就是统一管理jar包或者第三方框架,以前都是同一份jar,这个项目要用的话就往该项目的lib目录拷贝一份,别的项目要用就再拷一份,显然这是不人道的;而Maven的作用如图:

统一管理的精髓在于不需要每个项目都拷贝一份jar了,而是在一个pom.xml文件中配置项目需要的第三方框架的依赖,如下的dependencies所属内容:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.54</version></dependency></dependencies></project>

然后Maven就会从本地仓库查找是否有这个目录:com\alibaba\fastjson\1.2.54(目录是由groupId,artifactId,version组成的);如果没有就需要从远程仓库下载,这个远程仓库就是Maven官方提供的中央仓库(可以通过https://search.maven.org/访问),然后将其下载到本地仓库;
从上图可以看出所有项目所用的第三方框架都会下载到本地仓库,但是本地仓库的默认地址是:C:\Users\用户名.m2 目录下,所以需要修改,通过修改Maven安装目录下的apache-maven-3.6.0\conf\settings.xml文件,同时因为连接Maven中央仓库下载很慢,需要新增国内的镜像地址,当然有代理可用也可以设置代理,完整文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><pluginGroups/><servers/><localRepository>D:\Maven\repository</localRepository><mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror><mirror><id>central</id><name>Maven Repository Switchboard</name><url>http://repo1.maven.org/maven2/</url><mirrorOf>central</mirrorOf></mirror><mirror><id>repo2</id><mirrorOf>central</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://repo2.maven.org/maven2/</url></mirror><mirror><id>ibiblio</id><mirrorOf>central</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url></mirror><mirror><id>jboss-public-repository-group</id><mirrorOf>central</mirrorOf><name>JBoss Public Repository Group</name><url>http://repository.jboss.org/nexus/content/groups/public</url></mirror><mirror><id>google-maven-central</id><name>Google Maven Central</name><url>https://maven-central.storage.googleapis.com</url><mirrorOf>central</mirrorOf></mirror><!-- 中央仓库在中国的镜像 --><mirror><id>maven.net.cn</id><name>oneof the central mirrors in china</name><url>http://maven.net.cn/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors><proxies><proxy><id>myproxy</id><active>true</active><protocol>http</protocol><username>proxyuser</username><password>proxypass</password><host>xxx.xxx.xxx</host><port>80</port><!--<nonProxyHosts>local.net|some.host.com</nonProxyHosts>--></proxy></proxies>
</settings>

IDEA配置Maven

使用ctrl+alt+s快捷键打开设置窗口,找到Maven选项,设置如图

主要三点:

  1. 配置Maven安装目录
  2. 配置settings文件目录
  3. 配置本地仓库地址

注册私有jar

有些jar包本地仓库没有,然后远程仓库也没有,是私有的,或者自己打的jar包;那这种情况下怎么使用呢?难道只能每个项目都将其拷贝到lib目录下吗?其实不用,我们可以将其注册到本地仓库,比如我将一个jar放在项目lib目录下,然后在idea中打开Terminal,输入

mvn install:install-file -Dfile=lib/jxl.jar -DgroupId=jxl.write.bif -DartifactId=jx-biff -Dversion=1.0 -Dpackaging=jar

其中-Dfile是jar相对目录,-DgroupId、-DartifactId、-Dversion就是dependency下的三个属性;执行该命令后就能在本地仓库找到它了;最后需要在pom文件中添加如下配置就可以使用了

<dependency><groupId>jxl.write.bif</groupId><artifactId>jx-biff</artifactId><version>1.0</version>
</dependency>

Maven打包

有三个打包命令,但是三个命令所经历的声明周期是不同的,如下:

  • mvn clean package:依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。

  • mvn clean install:依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。

  • mvn clean deploy:依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段

由上面的分析可知主要区别如下:

  • package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

  • install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库

  • deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库


MySql安装

下载地址:https://dev.mysql.com/downloads/mysql/

我用的版本是community-5.7.22.1,比较稳定就没升级了,安装流程如图






配置环境变量

mysql默认安装在C:\Program Files\MySQL,如下

bin目录下保存了MySQL常用的命令工具以及管理工具、include目录和lib目录是MySQL所依赖的头文件以及库文件、share目录下保存目录文件以及日志文件

为了方便执行mysql 命令,将bin目录添加到环境变量,然后打开cmd,输入mysql -uroot -p,接着输入密码回车,如图


使用root帐号和我刚新增的mango帐号都可以连上数据库

接下来可以使用Navicat 操作,比如我这里新建一个数据库mango:


Intellij Idea

接下来就进入正题,新建项目,接下来得步骤我以图片得形式叙述

新建Spring Boot工程


这一步结束就到IDEA主界面了

刚开始的时候会下载一些需要的第三方库,默认下载的地址是在C:\Users\用户名.m2 目录下,这个需要自己配置Maven信息,方法在上面已经提到了,这里就不在叙述了

下载完成后如图

可以看到使用Spring Boot框架,idea会给我们生成一个DemoApplication类,打开看看

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

添加了一个注解SpringBootApplication,表明这个类是启动类;接下来点击右上角的三角启动按钮;不出意外,翻车了

配置数据库

***************************
APPLICATION FAILED TO START
***************************Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

大概意思是:

错误描述:配置DataSource失败,连接数据库的url属性没有指定和没有配置内嵌的数据源
原因:Mybatis没有找到合适的加载类,其实是大部分spring - datasource - url没有加载成功的原因,分析可能如下所示

  • DataSourceAutoConfiguration会自动加载.

  • 没有配置spring - datasource - url 属性.

  • spring - datasource - url 配置的地址格式有问题.

  • 配置 spring - datasource - url的文件没有加载.

解决办法如下:因为在新建工程的时候在SQL选项时选择了MySql,JDBC,mybatis,所以需要修改application.properties,配置数据库的一些属性;但是这个文件使用起来不简洁,没有代码提示,所以将其后缀改成 .yml,然后添加如下配置

# Web服务器端口
server:port: 8080spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://10.88.88.88/isp?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=UTC&useSSL=falseusername: rootpassword: mango

driver-class-name: com.mysql.cj.jdbc.Driver这句可能会报错,需要修改pom文件中的mysql依赖

配置MyBatis

同样是在application.yml中添加

# Mybatis
mybatis:config-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mapper/*/*.xmltype-aliases-package: com.maven.demo.pojo

config-location和mapper-locations的配置需要在resources下面新建目录和文件
type-aliases-package的配置需要在包名下新建一个pojo的包

启动

再次启动就能看到控制台提示启动成功了

  .   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::        (v2.1.4.RELEASE)2019-04-30 09:40:55.604  INFO 62636 --- [           main] com.mango.demo.DemoApplication           : Starting DemoApplication on DESKTOP-L1PKA9E with PID 62636 (D:\Web\Workspaces\demo\target\classes started by lenovo in D:\Web\Workspaces\demo)
2019-04-30 09:40:55.606  INFO 62636 --- [           main] com.mango.demo.DemoApplication           : No active profile set, falling back to default profiles: default
2019-04-30 09:40:56.040  WARN 62636 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : No MyBatis mapper was found in '[com.mango.demo]' package. Please check your configuration.
2019-04-30 09:40:56.420  INFO 62636 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-04-30 09:40:56.434  INFO 62636 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-04-30 09:40:56.434  INFO 62636 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.17]
2019-04-30 09:40:56.507  INFO 62636 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-04-30 09:40:56.508  INFO 62636 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 872 ms
2019-04-30 09:40:56.641  INFO 62636 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-04-30 09:40:56.901  INFO 62636 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-04-30 09:40:56.904  INFO 62636 --- [           main] com.mango.demo.DemoApplication           : Started DemoApplication in 1.57 seconds (JVM running for 2.002)

然后打开浏览器看下:localhost:8080;你可能看到的是下面这个画面

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.Tue Apr 30 09:44:40 CST 2019
There was an unexpected error (type=Not Found, status=404).
No message available

这是因为没有获取到指定页面,因为我们还没有写任何的html;但是我们可以写个Controller来返回个页面显示,如下

@RestController
@RequestMapping("/welcome")
public class LoginController {@ResponseBody@RequestMapping(value = "/hello")public String hello(){return "hello";}
}

然后根据路径在浏览器打开就能看到了:http://localhost:8080/welcome/hello,页面会显示一个hello

配置Spring boot默认启动页

如果想要默认打开一个html的话,需要做一个配置,比如我在resource/static目录下新增一个index.html文件,想我们的服务一打开就是这个页面,做法是:

新增一个类,实现WebMvcConfigurer接口,不要继承WebMvcConfigurerAdapter,因为在Spring Boot2.0中它已经过时了;最后重写addViewControllers方法

@Configuration
public class DefaultPager implements WebMvcConfigurer {/*** 配置Spring Boot 默认启动页* @param registry*/@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/index").setViewName("index");}
}

连接MySql

idea工具有一个database插件,可以直接在这里连接数据库并操作,如图

这篇文章就到这里了,至于一些框架的使用后续再给出

使用Intellij Idea创建第一个SpringBoot+MyBatis+MySql项目并运行(附安装教程),使用Maven构建项目并管理第三方jar相关推荐

  1. 基于javaweb的在线游戏商城系统(java+springboot+mybatis+mysql+layui+jsp)

    基于javaweb的在线游戏商城系统(java+springboot+mybatis+mysql+layui+jsp) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/ ...

  2. Eclipse 创建第一个 springboot 应用

    Eclipse 创建第一个 springboot 应用 1.前言 一直想把笔记整理出来,分享一下 springboot 的搭建: 因为私下 idea 用的比较多,使用比较方便,但恰逢小伙伴问起 ecl ...

  3. 创建springboot+mybatis+mysql项目

    创建springboot+mybatis+mysql项目的源码https://download.csdn.net/download/qq_34297287/85245127可以点击上方下载创建spri ...

  4. ShardingSphere分库分表(SpringBoot+mybatis+mysql)配置

    一.什么是ShardingSphere 定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务. 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增 ...

  5. 微信小程序+SpringBoot+mybatis+MySQL实现简单的登录

    微信小程序+SpringBoot+mybatis+MySQL实现简单的登录 当下微信小程序和springboot都是比较火的.今天我们来用springboot和微信小程序来实现简单的登录. 1.首先来 ...

  6. 基于springboot+mybatis+mysql+layui员工工资管理系统

    基于springboot+mybatis+mysql+layui员工工资管理系统 一.目的 二.需求 功能划分 系统结构设计 软件界面截图 三.系统开发配置 四.获取源码 一.目的 ​ 运用JavaE ...

  7. 基于javaweb的商品进销存系统(java+vue+springboot+mybatis+mysql)

    基于javaweb的商品进销存系统(java+vue+springboot+mybatis+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclips ...

  8. SpringBoot+MyBatis+MYSQL项目实战六(新增收货地址)

    SpringBoot+MyBatis+MYSQL项目实战六(新增收货地址) 项目源码地址:电脑商城实战 点击新增收货地址 一:新增收货地址--数据表的创建 CREATE TABLE t_address ...

  9. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线论坛管理系统

    项目介绍: 本论坛是一个功能基本全面的内部交流使用论坛平台,提供发布问题.个人资料展示.评论.回复.搜索.接收消息通知等基本功能.后端采用了 SpringBoot + MyBatis + MySQL进 ...

最新文章

  1. python中字典统计成绩合_Python统计字典中的项
  2. Linux系统proc详解
  3. swift 滑动 iphone解锁_这10个iPhone隐藏功能,我就不信你全知道
  4. 计算机二级计划总结,计算机二级细节总结
  5. .NET_.NET Copy Web 部署概念_01-3
  6. 微课|中学生可以这样学Python(例11.2):tkinter猜数游戏(1)
  7. 如何进入服务器文件管理,服务器怎么打开任务管理器
  8. springMVC Model ModelMap 和 ModelAndView的区别
  9. 企业转向云服务的速度比企业的思想更快
  10. FGUI使用方法(四):List列表的详细使用方式,包括List嵌套List
  11. 数学建模学习之聚类算法
  12. php表格调整行间距,excel如何调整行距
  13. CSS篇之5. 样式的层级关系,选择器优先级,样式冲突,以及抽离样式模块怎么写,说出思路,有无实践经验
  14. Java游戏开发之一
  15. 网站压力测试--abtest测试详解abtest
  16. 【转】使用Eclipse和BlackBerry JDE开发黑莓应用程序
  17. mmap函数linux,linux下mmap()函数
  18. 51单片机入门学习(三):定时器
  19. 西门子step7安装注册表删除_如何完全卸载Siemens PLC编程软件
  20. 【转载】10月30日,94岁的金庸老爷子去世!

热门文章

  1. cisco思科产品大全
  2. Spring Boot整合RSA加密数据传输
  3. numpy.log(math.log)
  4. 需求分析篇|从实例分析中理解业务需求、用户需求、功能需求的转化
  5. 极客时间学习笔记☞《苏杰的产品创新课》(一)
  6. 线性代数学习笔记——第八讲——矩阵的初等变换
  7. Flash动画软件的心得笔记
  8. SAP HR 考勤 PT60执行时报错“在$无工作中心数据 YYYY.MM.DD”问题解决<转载>
  9. 十大优秀网址导航站介绍
  10. 杭电ACM 改革春风吹满地