一 maven

1. Maven的相关概念

1.1 项目开发中遇到的问题

(1)都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行?

(2)为什么在我的机器上可以正常打包,而配置管理员却打不出来?

(3)项目组加入了新的人员,我要给他说明编译环境如何设置,但是让我挠头的是,有些细节我也记不清楚了。

(4)我的项目依赖一些jar包,我应该把他们放哪里?放源码库里?

(5)这是我开发的第二个项目,还是需要上面的那些jar包,再把它们复制到我当前项目的svn库里吧

(6)现在是第三次,再复制一次吧    ----- 这样真的好吗?

(7)我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已经有五个项目组在使用它了,今天我发现了一个bug,并修正了它,我会把jar包通过邮件发给其他项目组,这不是一个好的分发机制,太多的环节可能导致出现bug

(8)项目进入测试阶段,每天都要向测试服务器部署一版。每次都手动部署,太麻烦了。

1.2 解决方案

  需要一个工具进行项目管理,对项目中的jar包进行管理、jar包的版本管理、项目的打包的流程管理。实现一步构建

(1)Ant:

  可以对项目进行构建。缺少生命周期的管理,需要自己手工定义。需要自己定义一个build.xml,缺少jar包的管理。对工程的目录结构没有约束

(2)Maven

  拥有约定,知道你的代码在哪里,该放到哪里去。拥有一个生命周期,例如执行mvn install就可以自动执行编译,测试,打包等构件过程,只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情

1.3  什么是maven

  maven翻译为“专家”,“内行”。Maven是基于 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具

  Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建依赖管理项目信息管理

  Maven主要有两个功能:

    (1)项目构建

    (2)依赖管理 

1.4 什么是构建

maven定义的工程构建生命周期:

编译的时候会有些中间文件,当你再次编译时就要将这些文件清理掉,所以在编译前会有清理这一步

1.5 Maven的模型

2. Maven的安装

第一步:安装jdk

第二步:把maven解压缩

第三步:配置环境变量MAVEN_HOME.

E:\development\apache-maven\apache-maven-3.6.2-bin\apache-maven-3.6.2

第四步:在path中添加%MAVEN_HOME%/bin

第五步:测试

Mvn -v测试

3. maven在eclipse中使用

3.1 在eclipse中安装maven

Window---->preferences得到如下图

点击apply and close即可

User Settings  用户自定义设置

3.2 创建maven工程

(1)第一种形式:java项目

最终可得到如下形式的项目:

(2)第二种形式:web项目

前面步骤同上

得到如下项目

配置pom.xml文件

若想添加mysql的jar包,可以直接在依赖处添加mysql的依赖坐标(有网的情况下,否则就得配置本地仓库)

在pom.xml的依赖处添加mysql的依赖坐标,如下图

3.3 创建本地仓库

maven安装包--->conf---->setting.xml

由于每次下载jar包都需要去外网下载,网速会很慢,所以可以配置访问阿里云的镜像(国内),这样下载相应的包速度就很快

这样setting.xml文件就算设置好了,接下来直接在eclipse中添加配置文件:windows-preference-Maven里面的User-Settings,里面有一个是全局设置,一个是用户设置,最后一个是本地仓库位置(前面两个配置好,update后会自动填写),把两个设置都改为你的settings路径就行了

Could not read settings.xml
Could not read settings.xml 字面上的意思是读取不了这个文件,说明你的文件里面的内容有问题
1、编码问题:内容里面最好不要有中文,配置完之后一定要以 utf-8 的形式保存
2、空格问题:允许换行,但是不允许有多个空格的出现
3、配置仓库路径的时候不要用的是 / 符号

一开始,本地仓库是个空的文件夹,当我们创建一个项目时,本地仓库中就会自动多一些jar包,如下图

若想将项目放到本地仓库,可以如下操作

二. springboot

  springboot是spring的一个全新的框架,其能简化项目搭建过程和开发效率

1. 整合spring和springmvc

1.1 整合流程:

(1)使用maven构建web项目

(2)在pom文件中添加springboot的父工程依赖(必须)

(3)添加webstarter的依赖

 说明:Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。举个例子来说明一下这个起步依赖的好处,比如组装台式机和品牌机,自己组装的话需要自己去选择不同的零件,最后还要组装起来,期间有可能会遇到零件不匹配的问题。耗时又消力,而品牌机就好一点,买来就能直接用的,后续想换零件也是可以的。相比较之下,后者带来的效果更好点(这里就不讨论价格问题哈),起步依赖就像这里的品牌机,自动给你封装好了你想要实现的功能的依赖。就比如我们之前要实现web功能,引入了spring-boot-starter-web这个起步依赖。

(4)编写启动类

@SpringBootApplication
public class AppStart {
public static void main(String[] args) {
SpringApplication.run(AppStart.class, args);
}
}

(5)编写控制器

@Controller
public class PageController {
@RequestMapping("/")
public String index() {
return "index.html";
}
}

注意:springboot默认存放静态资源的地方为src/main/resources下的static文件夹

点击启动类,开启springboot(不需要再点击tomcat开启了), 浏览器中输入请求:http://localhost:8080/(此处url不需要输入项目名,因为以前是一个tomcat中包含多个项目,此处只有一个)

1.2 注解   

1.2.1 

特殊的类,可以写在类上,方法上,属性是哪个,具有特殊的含义

@Controller  @Service  @Repository(即@Component):  用于spring容器加载相关类的

@Mapper:  mybatis为接口和sql语句创建代理对象

1.2.2  :@SpringBootApplication  (这是一个组合注解)

a 标明此类是本项目的快捷配置启动类

b 可以自动的扫描当前类所在的包以及子包中的所有的添加Component  注解的Controller,service,mapper的类

c 根据项目中的jar包自动完成必要配置

1.2.3 @Configuration  :替代xml配置

此处Configuration上为什么要有@Component注解?

  框架可以在代码中(类)完成自动配置或者自定义的配置,在这些配置类需要交给容器管理,所以需要此注解进行包的扫描

2. 整合mybatis操作数据库

1.1 大致流程

(1)添加依赖,mysql的驱动

(2)application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/db_demo1?useSSL=false&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=feng
spring.datasource.driverClassName=com.mysql.jdbc.Driver mybatis.type-aliases-package=com._51doit.pojo

此处也可以改用.yml文件

spring
  datasource
    url = jdbc:mysql://localhost:3306/db_demo?useSSL=false&characterEncoding=UTF-8
    username = root
    password = root
    driverClassName = com.mysql.jdbc.Driver

(3)Controller---->service---->mapper

controller

service

mapper

pom.xml文件

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com._51doit</groupId>
<artifactId>spring_boot</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring_boot Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- spring boot -->
<!-- 父級依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath />
</parent>
<dependencies>
<!-- 起步依賴 spring-boot-starter-xx -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- jsp spring boot 默认不支持jsp,所以加此依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>compile</scope>
</dependency> <!-- dao -->
<!-- mysql驱动 -->
<!-- mybatis -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency> <!--tools 自动重新启动项目 代码重新编译 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<finalName>spring_boot</finalName>
</build>
</project>

1.2 常见的配置文件

1.2.1 .xml

(1)标签的形式,层级结构,语法严谨,有约束

(2)解析方式:

a. document  对象解析,好处可以操作任意的元素,其是加在到内存中所以不能解析大文件

b. sax  逐行解析,不能操作任意的元素,可以解析大文件

1.2.2 properties

  key=value的形式

  Properties类解析

1.2.3 .yml配置文件

spring
  datasource
    url = jdbc:mysql://localhost:3306/db_demo?useSSL=false&characterEncoding=UTF-8
    username = root
    password = root
    driverClassName = com.mysql.jdbc.Driver

零基础学习java------40---------Maven(maven的概念,安装,maven在eclipse中使用),springboot(spring整合springmvc(注解),spring整合mybatis(常见的配置文件)),前端页面(bootstrap软件)的更多相关文章

  1. 音乐出身的妹纸,零基础学习JAVA靠谱么

    问:表示音乐出身的妹纸一枚  某一天突然觉得身边认识的是一群程序员   突然想 要不要也去试试... 众好友都觉得我该去做个老师,可是我怕我会误人子弟,祸害祖国下一代..... 要不要 要不要 学Ja ...

  2. 总结了零基础学习Java编程语言的几个基础知识要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面   初学者先弄清这 ...

  3. Maven插件的简介,安装及在eclipse中配置

    1.Maven简介 1.Maven介绍 Maven是一个基于项目对象模型(POM:project object model)的概念的纯java开发的开源的项目管理工具.Maven把我们的工程抽像一个对 ...

  4. IDEA + maven 零基础构建 java agent 项目

    200316-IDEA + maven 零基础构建 java agent 项目 Java Agent(java 探针)虽说在 jdk1.5 之后就有了,但是对于绝大多数的业务开发 javaer 来说, ...

  5. 零基础学习hadoop到上手工作线路指导(编程篇)

    问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如 ...

  6. Android零基础入门第40节:自定义ArrayAdapter

    原文:Android零基础入门第40节:自定义ArrayAdapter ListView用起来还是比较简单的,也是Android应用程序中最重要的一个组件,但其他ListView可以随你所愿,能够完成 ...

  7. 零基础学Java第一节(语法格式、数据类型)

    本篇文章是<零基础学Java>专栏的第一篇文章,从本篇文章开始,将会连更本专栏,带领大家将Java基础知识彻底学懂,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! ...

  8. 【零基础学习iOS开发】【转载】

    原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...

  9. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

    从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...

随机推荐

  1. dart系列之:dart语言中的特殊操作符

    dart系列之:dart语言中的特殊操作符 目录 简介 普通操作符 类型测试操作符 条件运算符 级联符号 类中的自定义操作符 总结 简介 有运算就有操作符,dart中除了普通的算术运算的操作符之外,还 ...

  2. 一个校验接口引发的思考--我真的了解Response吗

    一个校验接口 最近,我需要对接一个外部接口,基本功能是:校验指定的门店是否完善了货运信息.接口大致是这样的: POST https://******/Dealer/CheckCarrier Heads ...

  3. Java学习(九)

    今天先学习了内联框架的知识,使用iframe的标签,还有超链接的知识. 做了个小实践 <!DOCTYPE html> <head> <meta charset=" ...

  4. Python 爬取 拉钩

    ... from urllib import request from urllib import parse from urllib.error import URLError import jso ...

  5. python实现高斯滤波

    一,定义 核是:3 *3     均值滤波 二,高斯函数 Y方向的方差与X方向的一致.处理后图像看起来更模糊(滤波明显)的话,核要更大. (三)代码实现 (四)核计算 (五)图像产生高斯噪声循环代码实 ...

  6. C语言通过指针数组和二维数组读取文件

    1 # include <stdio.h> 2 # include <stdlib.h> 3 # include <time.h> 4 # include < ...

  7. 使用 kubeadm 部署

    上一章中,我们用 minikube 去搭建单机集群,并且创建 Deployment.Service(在三章中讲解),本篇将介绍利用 kubeadm 部署多节点集群,并学会 安装以及使用 kuberne ...

  8. Apache ShardingSphere 5.0.0 内核优化及升级指南

    经过近两年时间的优化和打磨,Apache ShardingSphere 5.0.0 GA 版终于在本月正式发布,相比于 4.1.1 GA 版,5.0.0 GA 版在内核层面进行了大量的优化.首先,基于 ...

  9. 关于前端项目cookie的获取

    最近项目在做切换,2.0要升级到3.0,遇到跨域问题,使用的是nginx 进行对端口拦截请求其他地址,另外有的服务还要登录权限,之前没看到有这个,后来加上获取cookie的请求 var v3_toke ...

  10. Hbuilder/Uniapp 格式化的时候,很多属性会排列在一行,如何结局?

    因为自己遇到这个问题,然后百度了很久都得不到解决办法,所以解决问题以后在博客园写下此文,希望能帮助到更多人! //在jsbeautifyrc.js里面的html中加入这个,就OK了 "wra ...