开发者社区> 红色迷宫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

课程设计问题总结

简介: 一些部署到阿里云的问题 一直在阿里云上部署项目,但是只是以ip:端口的形式去进行访问部署到阿里云的项目,个人觉得很丑,之前也有申请过一个.top的域名,但是迟迟过不了认证,后来也一直没有纠结过这个事情,直到课设和前端合作了一个web项目。
+关注继续查看

一些部署到阿里云的问题

一直在阿里云上部署项目,但是只是以ip:端口的形式去进行访问部署到阿里云的项目,个人觉得很丑,之前也有申请过一个.top的域名,但是迟迟过不了认证,后来也一直没有纠结过这个事情,直到课设和前端合作了一个web项目。发现其实还是有许多问题等着解决

80/8080有什么区别

之前访问一个项目不论是在本地使用localhost形式还是部署到阿里云后使用ip形式访问,始终都要带上tomcat的默认端口8080,这让我觉得真的很丑,并且也心生疑问,为什么访问诸如百度阿里腾讯这类大型网站不需要带上项目部署的端口

80端口是为 HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数 最多的协议,主要用于WWW(World Wide Web)即万维网传输信息的协议。可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站,因为浏览网页服务默认的端口号都是80,因此只要输入网址即可

看了这句话不难理解,其实 www.baidu.com 也就相当于 www.baidu.com:80

之前在跟安卓交互的时候,因为没有添加host请求头,所以我在这边看我的tomcat日志一直都没有拦截到请求的迹象,项目中在关键地方打了log之后才发现,没有加host的时候,使用我提供的接口请求的默认端口是80端口,也就更能证明上面说的80端口是HTTP协议默认的端口了

之前在阿里云配置域名解析之后,访问的结果是这样的
img_9164f7f29baf02bd383a2aca07a8f418.png
使用tomcat默认端口8080访问

实在是觉得:8080这个东西既不好看又累赘,所以修改了阿里云tomcat的配置

进入tomcat下conf目录编辑server.xml


img_35b3b18a71c9252401654b68dcfe36ca.png

找到Connector结点


img_cc3a32c9a64fc1ce0603503b8da7c821.png

修改port从8080变为80
重启tomcat就可以发现我们可以通过省略tomcat默认端口8080去访问云上的项目


img_49ab0ff05eae19d62b26ba33cef22bd6.png
不使用8080端口访问项目

DNS是什么

DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。

域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。 域名系统采用类似目录树的等级结构。

域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为 “域名解析”

在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。

以百度为例 打开win10 cmd

img_0d1fd5a2d2a1fcd745bb4c0a856747cc.png
ping命令

简单来说,我们最常用就是的DNS域名解析服务。比如上网时输入www.baidu.com计算机通过DNS服务器将www.baidu.com 解析成百度对应的服务器IP地址,220.181.112.244

编码时候的问题

Spring Boot篇

SSM用得已经很熟了,这次课设本来想使用Spring Boot 写一个正儿八经的web服务端,还准备尝试着去使用一下Rest风格,可最后因为前端的问题,课设最后也才算刚刚完成,最后将web和后端放在了一个项目

Spring Boot使用的时候出现的问题:

  • 因为我是用的是gradle构建的项目,在部署的时候迟迟找不到idea的gradle中的war选项,后来了解到需要在项目的build.gradle中添加如下属性

      apply plugin: 'war'
    

并且在执行打包之前,需要对整个程序的启动类进行一定的操作

@MapperScan("com.bsb.mapper")
@SpringBootApplication
public class SpringBootMybaitsApplication extends SpringBootServletInitializer {

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

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
      return builder.sources(SpringBootMybaitsApplication.class);
  }
}

修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法,注意这里要指向原先用main方法执行的Application启动类

  • 因为Spring Boot在idea项目初始化的时候会让开发者自己选择项目所需要的模块,真的很方便,但是,在部署到阿里云的时候出现了问题。因为Spring Boot是使用的内嵌的tomcat,所以在部署到阿里云tomcat的时候需要尤其注意在build.gradle中加入如下属性
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')

这句话的意思是,在执行项目打包的时候,内嵌的tomcat不会被打包进最后的.war中
这样就可以在阿里云的tomcat中部署,并且使用阿里云tomcat作为web服务器进行正常工作

后来还是使用了SSM,这也让我回顾了一些东西

Mybaits动态SQL

比如现在有一个需求,需要批量插入一组数据进数据库,会怎么做,循环一条一条做吗

Mybaits 提供了动态SQL功能
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。
MyBatis中用于实现动态SQL的元素主要有:

  • if
  • where
  • set
  • choose(when,otherwise)
  • trim
  • foreach

下面看几个例子
向数据库中插入批量数据

 <insert id="buyTicket" parameterType="com.bsb.pojo.Ticket">
    INSERT INTO ticket_table
    (
        movieId, hallId, startTime, seatRow, seatColumn, ticketPrice, userId
    )
    VALUES
    <foreach collection="list" item="ticket" index="index" separator=",">
     (
        #{ticket.movieId}, #{ticket.hallId}, #{ticket.startTime}, #{ticket.seatRow},
        #{ticket.seatColumn}, #{ticket.ticketPrice}, #{ticket.userId}
     )
    </foreach>
</insert>

批量更新数据

<update id="updateSelectedMovie" parameterType="java.util.List">
    <foreach collection="list" item="movie" index="index" separator=";">
        UPDATE movies_table
        <set>
            scm = #{movie.update}
        </set>
        WHERE id = #{movie.movieId} AND status = 1
    </foreach>
</update>

批量删除数据

  <delete id="returnTickets" parameterType="java.util.List">

    DELETE FROM ticket_table WHERE userId = #{userId} AND id IN

    <foreach item="id" collection="ticketsIds" index="index" open="(" separator="," close=")">
        #{id}
    </foreach>

</delete>

其实可以看出,这些加入了<foreach>标签的SQL语句其实和普通的语句没有什么区别,区别在于,foreach标签能够对Mapper接口传入的集合参数进行遍历,并且对SQL语句进行拼接,也正是因为这样才能实现批量增删改查的功能

数据库篇

数据库的结构设计真的对后期编码十分影响,这次我们的课设项目的数据表结构设计得在我看来是相当合理的,其中使用到了一些视图、触发器和定时任务,觉得设计得不错并且练了手也对数据库的基本操作有了更好地熟悉和回顾

课程设计github地址 https://github.com/challengerzsz/TTMS-RestfulApi

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Vue课程63-总结
Vue课程63-总结
5 0
设计模式概念总结
      这为我的学习笔记,原文为https://www.cnblogs.com/zhili/p/DesignPatternSummery.html 1.单例模式(Singleton)    确保一个类只有一个实例,并提供一个全局访问点 2.简单工厂   优点: 简单工厂模式解决了客户端直接依赖于具体对象的问题,客户端可以消除直接创建对象的责任,而仅仅是消费产品。
823 0
C#设计模式总结
原文:C#设计模式总结 一、引言   经过这段时间对设计模式的学习,自己的感触还是很多的,因为我现在在写代码的时候,经常会想想这里能不能用什么设计模式来进行重构。所以,学完设计模式之后,感觉它会慢慢地影响到你写代码的思维方式。
1440 0
《计算机网络课程设计(第2版)》——2.5节相关扩展
本节书摘来自华章社区《计算机网络课程设计(第2版)》一书中的第2章,第2.5节相关扩展,作者:吴功宜 吴 英 ,更多章节内容可以访问云栖社区“华章社区”公众号查看
759 0
软件工程概论课程总结
  这个学期的《软件工程概论》课程结课了,回顾这十几节课,确切的说是回顾这一个学期,我在这门课上投入的时间平均下来每天是4-5个小时,最少的时候也要投入一个多小时,而最多的时候甚至熬夜到第二天早上。那么具体在这门课上都干了些什么呢?那就要从上学期期末开始说起;上学期期末就留下了这门课的个人作业的第一项;接着随着这学期课时的进行,先是做了四则运算1、2、3、4,其中四则运算4是两人结组完成;再接着到了团队项目阶段,做了两个10天的冲刺,在此期间,几乎每天都在看相关的书籍和视频自学;看完后再考虑怎么写程序,怎么设计。
1541 0
所教课程
学生名单   百度传课 (听锦数学): http://www.chuanke.com/s6932084.html   点集拓扑在线课程: http://www.chuanke.com/6932084-176525.
880 0
php设计模式总结-单件模式
一、单件模式英文叫做sington。其他语言中有叫做单例模式,其实都是一样的道理。保证只会出现单个实例,所以是单例。翻译成单件,永远只会产生一件,呵呵。 还有翻译成单元素模式。其实关键是看这个英文比较好。
806 0
关于课程体系、内容与教育原则、教学方法的讨论
  利用假期,完成了拖了很久的稿约,也是“导教班”(见《短训学习录系列博文链接》)的延续作业,免费出版,这是编辑部的支持了。投稿后,却意外地要求按另一个思路修改。编辑部的观点是对的,但我也想坚持写自己的感受。几次的讨论下来,编辑部接受了我的观点。回顾几封信件,我想说的是,高校教师除了关注课程体系和课程内容的改革之外,事关教育原则、教学方法的实施,是一个更需要关注的领域。   我的文章,在正式发
1169 0
ocp听课总结之1——课程简介
这只是我个人的笔记,不适合各位网友学习,因为个人的程度水平不一,况且我记录的比较散乱,不适合系统学习。 oracle学习步骤: plsql——数据库体系结构(各种文件,内存块等)——数据库备份恢复——数据库优化——rac(真正应用集群)(rac 优化,工作机制)——sql语句的执行计划,sql语句的各种优化。
872 0
+关注
红色迷宫
他山之石 可以攻玉
17
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载