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

一 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>
View Code

 

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

 

posted @ 2019-10-22 17:12  一y样  阅读(250)  评论(0编辑  收藏  举报