10天企业框架培训笔记

实训技术
    了解
    1. springboot
    2. maven
    3. git/github
    4. swagger
    5. 数据库技术
    6. 数据建模
    7. 团队协作(github)
    8. 打包,上线(阿里云【一年 9.8】)
        linux/windows        B/S架构

--------------作业-------------
1) 注册github账号     1000亿 100
    github
    小米
    百度
        无人驾驶
        京东
2) 软件公司
    1. 管理层 
        合伙人
        会计(代理记账)


        招人
            Java工程师 5(后台开发) 作坊
            前端工程师     5(前端开发)
            手机端开发(android ios) 0(技术支持)
            产品经理
            运维(linux)     运行部署
            测试
            大数据(大公司)
    2. 地点,写字楼

    团队构成

    职业规划(软件工程    IT)
        1. 如何看待IT
            加班
                朝九晚五 上五休二     
                项目交付前
            头发少
            成家问题
        2. 如何积累
            精通语言     Java
            对于其他语言有所了解
            github    开源项目,贡献源码
            自主学习能力(springboot 官方文档 英文)
            熟悉 linux(开源C)
            社会担当

            大牛
                学生管理系统
                二手交易网
            weex
        3. 如何成长

3) 开发环境
    ThinkPad T480P (8000 固态+16G内存,港版)
        windows7
        Java开发
        Java学习(linux[ubuntu,centos])
    mac pro(苹果系统) 类Linux系统(10000)
        前端
            html/css/ps/vue/angularjs/React

    学习路线
        大二
        JavaSE (基础学习 c/s)
            linux         5天
            CoreJava    20天
            XML解析         2天
            MySQL         5天
            JDBC             5天
            Mybatis/Hibernate        
                                5天(ORM框架)
        JavaEE (企业级开发 b/s)
            Servlet/JSP
            spring(基础学习)
                分步骤进行
                核心框架 context
                依赖注入
                面向切面
                解决问题能力(基础)
            springmvc

            本科生应届生        
                SSM框架(spring springmvc mybatis)
        
        实战工具(提分)
            maven     项目管理工具
            git         版本控制工具
            github     第三方代码托管(团队协作)
            swagger API文档(交流)
            JVM         java虚拟机
            分布式部署经验,大量并发,产品上线

        能力!
            解决问题能力(bug/处理事情方法)
            学习能力
            成熟稳重(处理问题)浮躁
            角度(视角)

------------------------
            10人/组
            3小时 -- 5小时
            上课听明白(如果有能力跟上敲代码)
            下课落实代码
            出了问题自己解决
            实在解决不了小组内部沟通
            问老师

扫描二维码关注公众号,回复: 2357251 查看本文章

day01
1. 基础环境搭建
    1) 安装jdk
        1. 下载对应的jdk版本 (oracle官网 jdk8 )
        2. 安装
            1) 解压 (下一步)
            2) 配置环境变量
                JAVA_HOME     Java的家目录
                CLASSPATH     类加载路径
                Path
    2) helloworld
        1. 手动编写Helloworld
            1) 创建项目
            2) 搭建项目结构
            3) 进行代码编写
            4) 编译代码
            5) 运行

            Java 编译型语言
                源代码
                    Hello.java
                字节码(提升代码运行效率,代码保密)
                    Hello.class

        2. 刚刚那个题是不是只能在
        /home/briup/Java/example/app01这个目录下运行?
            是!
        怎么找到这个类
        java -cp /home/licy/.../app01/bin com.briup.test.Hello

        类加载机制CLASSPATH
        双亲委托机制

        1) 打包 jar test.jar
        2) 将test.jar放入到扩展类加载中
        3) 直接运行即可

        3. test.jar能不能直接运行呀?
            java -cp test.jar com.briup.test.Hello

2. mysql
    乱码
3. eclipse

4. 归档能力(管理)
    pc
        (虚拟机[windows,linux])

    c:
    d:
    e:
    f:

    d:/briup/
        elipse(解压即安装)
        workspace
            源码
        maven
        respository
        spring

5. 树莓派
    

6. windows应用
    WIN+r     打开运行
    WIN+e     打开资源管理器

----------
1. 9.9     阿里云(windows)
2. teamview     远程工具


C:\ProgramData\Oracle\Java\javapath;
C:\windows\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
c:/qq/bin/


dos
    dir
    java
    root

day02-------------------------
基础开发环境
    springboot(SSM)
    JavaSE
    JavaEE
    SSH
1. jdk
2. mysql
    1) 执行数据库启动的时候/写入配置文件(一个都无法执行)
        c:/program files/Mysql/bin/my.ini
        c: 写入权限 (win10)     
    2) 前三步没问题!最后一步失败(开启了防火墙)
        一般情况下第三步可以启动,那么服务一般是可以用
    3) 在终端中输入 
        mysql 找不到命令(环境变量没有配置)
    4) 密码 

    测试mysql服务是否安装成功
        在终端中输入
        > mysql -u用户名 -p密码 -h主机
        > mysql -uroot -proot -h127.0.0.1

        不是内部或外部命名,Path
        CTRL-C 强制中止一个进程

3. navicator
    mysql图形化界面,只要mysql服务安装成功并且启动成功,这个工具才能用


搭建springboot开发环境
    1) 安装eclipse / idea (代码编辑工具)
    d:/briup    (licy)
            eclipse     直接解压到当前目录
                设置:
                    Text Fonts
                    encoding
            workspace 工作空间

        集成开发工具(耗费系统资源,功能比较强大)
            elipse
            idea
        文本编辑
            vim
            sublime
            editplus
            notepad++
    2) maven
        项目管理工具
        1. 创建项目
        2. 测试
        3. 打包运行
        4. 管理依赖


        1. jdbc编程
            1) 创建项目
            2) 获取驱动包
            3) 创建数据库以及对应的表
            4) 编码
            A项目     调用到其类(excel )
                查询所有学生信息
                下载到excel

            Java -> excel (POI) 
                Java jar包 class
                开源
                收费(不开源)


            springboot (框架)
                springmvc
                mybatis
                swagger     

                改变(自己封装)
                前端
                    AngularJS(google)
                    React/ReactNative

                    尤雨溪
                        历史
                        美工    页面仔
                        前端开发     出国!留学(美国)研究生
                        google js 研究 插件 google
                        AngularJS
                        封装
                        github 
                    基于vue封装组件库
                        饿了么 elementui


----------------
Java
    java.lang
    
    类 调用 另外一个类
    什么情况下不需要导入类
        1) 调用的类属于java.lang
        2) 调用的类和当前类在同一个包下

    java.lang
    java.util
    java.io
    java.thread
    java.net
    java.sql

语法:
    1) 类
        成员属性/成员变量/实例变量
        成员方法/实例方法
        访问修饰符 class 类名 {
            访问修饰符 数据类型 属性名;

            访问修饰符 返回值数据类型 方法名(形式参数){
                return
            }
        }
        public class Student{
            private String name;

            public void sayName(){
                System.out.println(this.name);
            }
            public String getName(){
                return this.name;
            }
        }

        只有包含main方法的类才能被执行,并非所有类中都需要main方法


        jdbc编程
        1. 手动获取jar包(class打包的文件,方便程序员进行调用)
            mysql-connector-xxx.jar
            提供java链接mysql数据库的支持
            sun原生代码不支持直接链接数据库
            调用第三方API(应用程序编程接口)
            如何获取jar包???
                官网(英文)
        2. spring
            spring和mysql的jar会不会冲突?

            maven(项目依赖)
                bin
                src
                javac -d ./bin src/Hello.java
                java -cp ./bin com.briup.test.Hello

                cp classpath
                1) 解压maven到briup目录下
                2) 配置环境变量
                        M2_HOME
                        Path
                3) 解压本地仓库
                    将repository解压到briup目录下
                4) 配置本地仓库地址
                    在c:/briup/maven_xxx/conf/settings.xml配置本地仓库
                5) 在eclipse中配置maven
                    1. 安装
                    2. user settings

        3. 如何配置项目框架
            jdbc                 mysql依赖
            spring             spring+jdbc开发
            spring+web     spring+springmvc+jdbc
            spring+web+mybatis
                                    ssm框架
            springboot(项目架构)
                1) 解压springboot到briup目录下
                2) 配置环境变量
                    SPRING_HOME
                    Path

            开发简单,难在架构
                Student
                Course
                Clazz
                StudentDao
                CourseDao    
                Clazz
                jdbc(mybatis)
        4. 使用springboot创建开发项目
            调用spring官方给我们提供的服务,也就是说让spring来帮我们创建项目,我们只需要告诉它我们的项目组id,项目id,项目名称,项目依赖即可。spring创建完毕之后我们可以进行下载,这样就拥有一个基于spring的项目。

            进入到workspace目录下
            > spring init -g=com.briup -a=app01 -d=web,mysql app01
            > cd app01
            > mvn install
            > mvn spring-boot:run
            打开浏览器,在浏览器地址栏中输入
            http://localhost:8080


                spring init [参数] 项目名称
                spring init app
                -g     groupId            项目组id
                -a     artifactId  项目id
                -d     dependency    项目依赖
                            mysql     驱动依赖
                            web         springmvc的依赖
                -p     package          打包方式

            briup/app01
                pom.xml

                下载sublime(editplus)

        5. b/s架构
            Java 执行Java类

            1. 查询班级学生信息
                Main.java
                    jdbc 访问数据库 查询学生信息

            2. 查询班级学生信息
                www.terry.com/sms/

                1) 网页(H5工程师/前端工程师/JSP)
                    1. 列表显示所有学生信息
                    2. 统计图-统计学生出勤率 (班牌系统-产品)
                2) 数据来源!!!
                    数据库
                        |
                    程序读取
                        |
                    发送给前端开发者(http协议、ajax、json)

        6. 添加热部署能力
            当修改了代码为了能给直接进行测试而不需要重新启动服务所添加的一种能力。

            在pom.xml添加依赖

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>

        7. 添加swagger
            1) 在pom.xml添加依赖
                <dependency>
                    <groupId>io.springfox</groupId>
                    <artifactId>springfox-swagger2</artifactId>
                    <version>2.6.1</version>
                </dependency>
                <dependency>
                    <groupId>io.springfox</groupId>
                    <artifactId>springfox-swagger-ui</artifactId>
                    <version>2.6.1</version>
                </dependency>
            2) 配置
                
----------------day04----------------
1. 使用springboot创建一个项目,并且这个项目具有热加载能力,能提供swagger服务,提供ssm框架
    1) 将dos盘符切换到workspace下
    2) 在dos中执行如下命令
        > spring init -g=com.briup -a=app02 -d=web,mybatis,mysql app02
        命令结束后在当前目录下会产生一个新的项目,项目名称叫app02

    3) 进入app02项目根目录下,然后执行添加依赖操作
        > cd app02     
        > mvn install 
    4) 通过eclipse打开项目
        file-> open projects from file system

    5) 添加热部署能力
        在 pom.xml中添加依赖信息
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
    6) 添加swagger api能力
        在 pom.xml中添加依赖信息
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.6.1</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.6.1</version>
            </dependency>

        右击项目名称 -> maven -> update project

        配置
            Swagger2.java导入到项目中(延缓)

    7) 进行代码编写
        com.briup.app02
            bean
            dao
            service
            web
                controller
                    TestController.java
    8) 启动项目进行测试
        > mvn spring-boot:run
            1) 测试项目 TEST,如果项目中出现错误,启动失败
            2) 打包项目     target
            3) 启动tomcat服务器
            4) 将项目部署到tomcat中
                JavaEE(servlet/jsp)


        腾讯云服务器(小程序,微信公众号) 9.5 linux 
            tomcat
                cd tomcat_home/bin/start.sh (shell编程)
                8080
                本地访问
                    http://127.0.0.1:8080     访问到
                外网访问
                    http://120.78.164.247:8080 访问不到
                    防火墙(安全组)
                    安全组如何配置

    9) mybatis的应用
        1. 将mybatis集成到当前项目中(原理)
            springboot
        2. 使用mybatis ORM
            1) 表 tbl_student(id,name,age)
            2) pojo类 Student(id,name,age)
            3) mybatis应用
                 1. 映射接口
                public interface StudentMapper{
                    Student findById(long id);
                }
                2. 映射文件 xml
                sql语句
                <mapper namespace="映射接口的完整名称">
                    <select id="接口中的方法名" resultType="将查询到的结果封装到对象中">
                        select * from tbl_student
                    </select>
                </mapper>
                3. 告诉给mybatis映射接口和映射文件放置到什么地方
                    dao
                        StudentMapper.xml
                    mapper
                        StudentMapper.xml
                    1) 映射接口
                        @MapperScan("com.briup.app02.dao")
                            到包com.briup.app02.dao包中寻找映射接口
                    2) 映射文件
                        application.properties
                        mybatis.mapper-locations= classpath:/mapper/**/*.xml
                            到项目根目录下mapper目录下寻找映射文件
                    数据访问层代码已经开发
            4)  


            jdbc的封装
            dao
                public class StudentDao
                    findAll(){
                        try{
                            //1. 加载驱动
                            //2. 获取连接
                            //3. 预处理sql
                            //...
                        }catch(){

                        }
                    }
                    findById(){

                    }
                    delete(){

                    }


---------------------day05---------------------
1. 回顾
    ssm框架代码编写
    1) 搭建ssm框架
        > spring init -g=com.briup -a=app02 -d=web,mybatis,mysql app02
    2) 安装依赖
        > cd app02
        > mvn install
        Test
        报错:合适的driver
    3) 通过eclipse打开项目
        application.properties
            spring.datasource.url
            spring.datasource.driver-class-name
            spring.datasource.username
            spring.datasource.password
    4) 搭建三层架构
        com.briup.app02
            config
            bean
            dao
            service
                impl
            web
                controller
    5) 数据访问层的编写
        bean
            Student.java
        dao
            StudentMapper.java
        resources
            mapper
                StudentMapper.xml
        配置(只需要配置一次)
            1) MybatisConfig.java
                @MapperScan("com.briup.app02.dao")
            2) application.properties
                mybatis.mapper-locations= classpath:/mapper/**/*.xml
    6) 业务逻辑层代码
        service
            IStudentService.java     (接口)
                findAll() throws Exception;
            impl
                StudentServiceImpl.java

    7) 视图层(控制器层)
        web
            controller
                StudentController.java

                @RestController     
                @RequestMapper("/student")
                public class StudentController {
                    @GetMapping("findAllStudent");
                    public void findAllStudent(){

                    }
                }
    8)提供统一的返回格式
      {
          code:200
          message:"买到了"
          data:{
              id=1,
              name:"怡宝“,
              price:2
          }
      }

    9)代码共享

    github仓库地址
         https://github.com/ZouZeBin/sms1.0.git  
            sms1.0


[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[user]
    name=ZouZeBin
    [email protected]
[remote "origin"]
    url = https://github.com/ZouZeBin/sms1.0.git 
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

    

                路由
                http://127.0.0.1:8080/student/findAllStudent

        Student                              Course
        StudentMapper                  CourseMapper
        IStudentService              ICourseService
        StudentServiceImpl    CourseServiceImpl
        StudentController            CourseController

        坚持把平凡的事情做好就是不平凡(情商)

        立功心切     
            idea
            员工        主管     经理     副总     老总
        IT公司     能力

        宫斗剧(甄嬛传) 
            职场
===================作业===================

下载 firefox 火狐浏览器,google chrome谷歌浏览器


bean
    Student
    Course (id,name,credit,description)
dao
    StudentDao
        findAll
        findById(long id)
            执行sql 
                pstmt.executeQuery()
        void deleteById(long id)
            执行sql 
                int num = pstmt.executeUpdate()
        void update(Student student)
        void save(Student student)
    CourseDao
        ....

代码习惯
    1. bug认定
        如果你能准确描述出问题所在,那么这个问题就解决一半了!
        Caused By:完整类名:问题原因

    2. eclipse中不要打开过多的选项卡
    3. 编写代码的时候养成一个习惯,只要停手就按ctrl+s
    4. 格式化代码(良好的缩进)
            ctrl+a     -> 右击 -> source -> format
 

猜你喜欢

转载自blog.csdn.net/iostream992/article/details/81178377