基于Maven项目构建SSM架构javaweb项目部署到云服务器详解

4 篇文章 0 订阅
1 篇文章 0 订阅

目录

 

1.开发环境准备

 2.写一个ssm架构的javaweb项目

2.1 正式开发

3.购买云服务器

4.配置云服务器的环境

查看已有openjdk版本

卸载openjdk

下载jdk1.8

解压

配置环境变量

5.部署项目上线


1.开发环境准备

本地开发环境:

  1. win10
  2. JDK 1.8
  3. MySQL8.0

云服务器环境:

  1. CentOS7.6   linux版本
  2. JDK 1.8
  3. MySQL8.0 linux版本
  4. tomcat 7.0

开发软件:

  1. IDEA 2020.2.1
  2. Navicat     (连接数据库)
  3. Xshell 6   (用于连接云服务器,传输文件,只适用于linux版本系统)

 2.写一个ssm架构的javaweb项目

     1.打开IDEA ,点击File  鼠标移到new 出Project 点它

     

2.这里我们是创建maven项目,创建javaweb项目,所以要选择maven标识的webapp

3.写项目名+修改项目存放路径

4. 这部分不用修改,也可以直接点击完成

5.创建好了的样子

6.它却java目录和test目录,我们手动加上,鼠标放在main目录上右击,选择New 和Directory

7.选择java ,重复6步骤,在选择resources目录,这个resources用于放配置文件

8.在src文件上右击,和第6个步骤一样,出现下面图片的样子

9.基本模型完成

2.1 正式开发

1.创建好,controller、dao、mapper、service层

2.在pom.xml 加入ssm框架的所需的依赖


  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--spring依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.17.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>5.1.17.RELEASE</version>
    </dependency>
    <!--springmvc依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.17.RELEASE</version>
    </dependency>

    <!--mybatis的依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.2.8</version>
    </dependency>


    <!--Spring整合MyBatis的依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.2.2</version>
    </dependency>

    <!--添加MYSQL的驱动包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.20</version>
    </dependency>
    <!-- 日志框架-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.5</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.5</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <!--      c3p0-->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
    <!--   单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>


    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>

  </dependencies>

  <build>
    <finalName>EChartsDemo01</finalName>

    <!--添加这个插件的作业,把mapper.UserMapper.xml打包到target的对应路径上-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <!--把resource的配置文件更新到target(即打包路径下)-->
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>

<!--这里欢迎系统自动生成的东西-->

<!--这里就是配置idea自带的tomcat-->
  <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8080</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>

  </build>

3.在resources目录下创建整合ssm的配置文件

 3.1 applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!--开启扫描 整合springmvc-->
    <context:component-scan base-package="com.hcq" use-default-filters="true">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>


    <!--关联相关属性 整合mybatis开始-->
    <context:property-placeholder location="classpath:db.properties" />

    <!--配置数据源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driver}" />
        <property name="jdbcUrl" value="${url}" />
        <property name="user" value="${name}" />
        <property name="password" value="${password}" />
    </bean>

    <!-- 和MyBatis整合 把mybatis对象交给SpringIOC容器管理-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--  关联Mybatis的配置文件-->
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!--配置扫描路径-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.hcq.mapper" />
    </bean>
    <!--关联相关属性 整合mybatis结束-->

</beans>

3.2 springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--    开启扫描-->
    <context:component-scan base-package="com.hcq" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--    开启注解-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="false">
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>

    </mvc:annotation-driven>
    <!-- 引入静态资源 -->

    <!-- 引入静态资源 -->
    <mvc:resources mapping="/static/**" location="/static/" />
    
</beans>

3.3 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

3.4 db.properties  连接数据库的配置,url 里写 localhost 这里是连接本地 ,连接云服务器,要把locahost 改成云服务器ip地址 ,比如我的是 106.75.151.111 

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/network?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
name=root
password=1234

3.5 log4j.properties 日志配置文件

log4j.rootCategory=INFO, stdout , R   

log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n   

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender   
log4j.appender.R.File=D:\\Java\\tool\\logs\\qc.log   
log4j.appender.R.layout=org.apache.log4j.PatternLayout   
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n 

3.6 webapp/WEB-INF/web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">

  <display-name>Archetype Created Web Application</display-name>
  <display-name>Archetype Created Web Application</display-name>
  <!--  配置spring-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!--  监听器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--  配置springmvc-->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--    关联springmvc的配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>


  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
<!--  静态资源的引用,哪些页面引用-->
  <servlet-mapping>
    <servlet-name >default </servlet-name >
    <url-pattern>/assets/*"</url-pattern>
    <url-pattern>/images/*</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.ccs</url-pattern>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping >

</web-app>

到这里SSM框架已经搭好了,下面启动tomcat测试有没有保错

这里看到没有报错,恭喜你成功一大半了,还要加油喔

下面来看看整体搭建好的样子

 

3.购买云服务器

我这边用的云服务器是 UCLOUD优刻得服务器 这个服务器性价比超高,我买的1核2G 带宽为1M, 一年才67元,非常适合学生党和刚毕业的小白,对带宽没有要求的人

我比较阿里云和腾讯云,最终还是选择优刻得服务器,服务器加域名一年100元都不到,非常划算。

服务器链接: UCloud服务器链接

1.点击购买服务器界面大概是这样的,版本有windows,linux的,买了linux版本,就不能更换成Windows版本,只能更换linux版本如centos,ubuntu,debian

买完服务器 登录控制台,登录后是这样的

 

 

 

2.购买域名,先领优惠劵,在点击more->  跳转在这里 https://www.ucloud.cn/site/udnr/inquire.html

登录控制台看域名

3.设置服务器防火墙  先点击详情

 

4.配置云服务器的环境

1.用 xshell6 连接云服务器   ,还可以这个软件传输要部署java项目,没有安装小伙伴,请自行安装一个

2.打开xshell 6

连接上了

3. CentOS7自带了一个openjdk,使用的时候用诸多问题,例如明明配置了Java环境变量但是不能使用,这个时候需要卸载重新安装。

查看已有openjdk版本

rpm -qa|grep jdk

卸载openjdk

remove后面的参数是上面得到的结果.noarch结尾的包

yum -y remove copy-jdk-configs-3.3-10.el7_5.noarch

下载jdk1.8

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

下载jdk-8u40-linux-x64.tar.gz,上传到/usr/local/soft/java

用xshell6传输文件,首先在连接成后,云服务器 输入下面的指令

yum install  lrzsz -y

 在输入rz 就打开传输文件的窗口,选择要上传的文件

 

解压

tar -zxvf jdk-8u40-linux-x64.tar.gz -C /usr/local/soft/java

 

配置环境变量

export JAVA_HOME=/usr/local/soft/java/jdk1.8.0_40
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

编译使之生效

source /etc/profile

验证

java -version

4. 安装 tomcat7

下载地址:https://tomcat.apache.org/download-70.cgi

用 xshell6 传输到指定目录下  

rz

解压

tar -zxvf  apache-tomcat-7.0.107.tar.gz

这里如果觉得解压后文件夹名太长修改下文件文件夹名

mv  apache-tomcat-7.0.107.tar.gz  tomcat7

 解析 mv  原文件夹名   新文件夹名

操作tomcat命令

tomcat7/bin/shutdown.sh  //停止服务
tomcat7/bin/startup.sh   //启动服务
tail -300f tomcat7/logs/catalina.out  //看tomcat启动后日志

 启动成功

5.安装MySQL8.0

  下载 mysql.rpm

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

安装下载好的rpm包

yum -y install mysql80-community-release-el7-3.noarch.rpm

安装MySQL服务器

yum -y install mysql-community-server

启动服务

service mysqld start

修改初始密码

grep "password" /var/log/mysqld.log

用初始密码登录,修改新密码,但是要先修改密码安全级别:

 登录成后,在mysql 里设置 

mysql -u root -p  //这里是登录
mysql> set global validate_password.policy=0;  //配置密码安全级别
mysql> set global validate_password.length=4; 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123456';

然后跟着设置允许mysql远程登录

mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;

这里要个小插曲:我们用客户端Navicat Premium 连接云服务器数据库,mysql8.0版本以上换了新的身份验证插件(caching_sha2_password),Navicat Premium的身份验证插件为(mysql_native_password),身份验证不匹配,连接是会报错,要修改下。

mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by 'your password';
mysql> flush privileges;

 

mysql> select user,plugin from user where user='root'; 

 修改后的样子

然后,重启mysql服务器

service mysqld restart

 6.设置防火墙

查看防火墙状态  下面显示已开启

systemctl status firewalld  

如果什么都没有就是防火墙没有开启

开启、重启、关闭、firewalld.service服务

service firewalld start  // 开启

service firewalld restart  //重启

service firewalld stop  //关闭

查看防火墙规则

firewall-cmd --list-all 

查询、开放、关闭端口

firewall-cmd --query-port=8080/tcp  //查询端口是否开放

firewall-cmd --permanent --add-port=3306/tcp  //开放80端口
 
firewall-cmd --permanent --remove-port=8080/tcp //移除端口

firewall-cmd --reload  //重启防火墙(修改配置后要重启防火墙)

在这边设置要用防火墙端口比如8080、80、3306、22、443 等

修改防火墙端口后都要重启防火墙

 7. 测试连接云服务器的数据库

   安装好Navicat Premium 112

   打开软件

 开大这个界面的时候不要选择常规,先选择SSH

 

5.部署项目上线

1 回到我们刚才做好的项目(打开IDEA),在软件右边Maven按钮打开,选择Lifecycle,用idea自动打包功能

 2然后打开xshell6,连接云服务器,首先切换到tomcat目录下

项目要部署在tomcat目录下的webapps里

切换到webapps目录  在用 命令 rz 上传打包好的项目(要部署的java项目)

3 上传要部署的项目后,如何tomcat启动的话,先停止在启动,

  怎么停止呢,目前在webapps目录下,先退出在tomcat7目录下面

   在重新启动tomcat

bin/startup.sh    //启动
tail -300f logs/catalina.out  //查看日志

在启动tomcat的时候,自动会把打包好的项目解压,解压后的文件是这样的

4.开始验证是否部署成功?

 打开谷歌浏览器 输入 http://web.supass.cn:8080/EChartsDemo01/  

这里要输入8080 端口太别扭,我们改下,用80端口,就不用输入端口了

tomcat默认是8080为启动端口,我们改成默认为80端口

在哪里改呢? 在tomcat7目录conf目录下server.xml   即tomcat7/conf/server.xml

 这里原来是8080的改成了80

 5 看完美的结果 

在谷歌浏览器输入http://web.supass.cn/EChartsDemo01/

网址解析:域名+项目名 以这个格式来访问你的项目  (项目名就是打包的名字)

 

谢谢观看,如有不懂的地方请留言,如写得不好请多多指教,共同进步,共同学习。java小白菜

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值