目录
1.开发环境准备
本地开发环境:
- win10
- JDK 1.8
- MySQL8.0
云服务器环境:
- CentOS7.6 linux版本
- JDK 1.8
- MySQL8.0 linux版本
- tomcat 7.0
开发软件:
- IDEA 2020.2.1
- Navicat (连接数据库)
- 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小白菜