48:第五章:开发admin管理服务:1:创建子工程【imooc-news-dev-service-admin】,管理服务模块;(修改了Tomcat的shutdown端口为2724)

这篇博客介绍了如何创建并初始化【imooc-news-dev-service-admin】管理服务模块,包括设置端口、配置数据源、日志组件,以及创建主启动类。此外,还涉及到了管理服务的功能规划,如文章分类、友情链接、用户账号管理和人工审核等。在启动服务时,若遇到端口被占用问题,提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:

(1)本篇博客合理性说明:

        ● 在【2:第一章:项目简介:2:项目演示;】中,可知我们的项目有一部分是"管理平台(或称运营中心)";这其实,就是该项目的后台的管理系统;

        ● 在【9:第二章:架构后端项目:5:【聚合工程】简介;】、【3:第一章:项目简介:3:项目微服务架构图;】中,可知我们会把管理服务单独抽出来;该项目的后台管理部分,都会放在这个模块中去做的;

        ● 所以,本篇博客就是创建【imooc-news-dev-service-admin】管理服务,这个模块; 

(2) 附加:如果在启动Tomcat和【admin】服务时,遇到端口被占用的情况;可以参考【tomcat运行时候出现java.net.BindException: Address already in use: JVM_Bind错误解决方法】去看看端口是否被占用,如果被占用则可以尝试关闭占用程序的进程;

目录

一:【admin管理服务】部分,内容概述;

二:创建子工程【imooc-news-dev-service-admin】,admin管理服务模块;

三:【admin】管理服务,初准备;

1.pom.xml;

2.application*.yml;

(1)application.yml;

(2)application-dev.yml;

(3)application-prod.yml;

3.logback-spring.xml:配置logback日志组件;

4.Application主启动类;

四:【admin】管理服务,创建测试用的HelloController,看看项目是否OK;


一:【admin管理服务】部分,内容概述;

(1)构建admin管理服务;

(2)文章分类功能;

(3)友情链接管理功能;

(4)用户账号管理;

(5)文章内容人工审核;

          ● 等后面,开发完"用户发表文章"功能后,再来开发这个功能;

          ● 用户发表完文章后,会先有一个自动审核,如果自动审核没通过就会进行人工审核;

(6)admin管理人员账号;

          ● 后台admin管理中心,也是需要有账户才能登录的;只是,我们不会在后台开发注册功能的;因为,后台的管理员账号,一般都是人工去分配的;即,一开始的时候,我们会有一个管理员账号,然后这个管理员账号可以创建几个管理员账号,以给其他人使用;

          ● 这儿也会涉及到人脸登录;一开始,会让用户的人脸入库,然后后续登录的时候,可以使用人脸登录;


二:创建子工程【imooc-news-dev-service-admin】,admin管理服务模块;


三:【admin】管理服务,初准备;

1.pom.xml;

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>imooc-news-dev</artifactId>
        <groupId>com.imooc</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>imooc-news-dev-service-admin</artifactId>


    <dependencies>
        <!--在admin这个微服务中,引入api接口工程的依赖;
        即【admin】这个微服务,需要依赖于【api】-->
        <dependency>
            <groupId>com.imooc</groupId>
            <artifactId>imooc-news-dev-service-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

说明:

(1)暂时只引入【api】接口工程的依赖即可;

2.application*.yml;

(1)application.yml;

############################################################
#
# admin管理微服务
# web访问端口号  约定:8005
#
############################################################
server:
#  port: 8005
  tomcat:
    uri-encoding: UTF-8
    max-swallow-size: -1  # tomcat默认大小2M,超过2M的文件不会被捕获,需要调整此处大小为100MB或者-1即可

############################################################
#
# 配置项目信息
#
############################################################
spring:
  profiles:
    active: dev    # yml中“配置文件”的环境配置,dev表示开发环境,test表示测试环境,prod表示生产环境;
  application:
    name: service-admin
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  datasource:                                         # 数据源的相关配置
    type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
    driver-class-name: com.mysql.jdbc.Driver          # mysql驱动
    url: jdbc:mysql://localhost:3308/imooc-news-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
    username: root
    password: *****
    hikari:
      connection-timeout: 30000       # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
      minimum-idle: 5                 # 最小连接数
      maximum-pool-size: 20           # 最大连接数
      auto-commit: true               # 自动提交(此属性控制从池返回的连接的默认自动提交行为)
      idle-timeout: 600000            # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
      pool-name: DateSourceHikariCP     # 连接池名字
      max-lifetime: 1800000           # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
      connection-test-query: SELECT 1

############################################################
#
# mybatis 配置
#
############################################################
mybatis:
  type-aliases-package: com.imooc.pojo          # 所有POJO类所在包路径
  mapper-locations: classpath:mapper/*.xml      # mapper映射文件


############################################################
#
# mybatis mapper 配置
#
############################################################
# 通用 Mapper 配置
mapper:
  mappers: com.imooc.my.mapper.MyMapper
  not-empty: false    # 在进行数据库操作的的时候,判断表达式 username != null, 是否追加 username != ''
  identity: MYSQL  # 方言,使用的是MySQL
# 分页插件配置
pagehelper:
  helperDialect: mysql
  supportMethodsArguments: true


说明:

(1)admin管理服务的端口是8005,这是前后端约定好的;

(2)这儿的内容,以前就介绍过;如有需要,可以参考:

          ● 【10:第二章:架构后端项目:6:创建子工程(或称模块工程、子模块);(包括common通用工程,model工程,api接口工程,user用户模块)】;

          ● 【16:第二章:架构后端项目:12:配置mybatis;(在【imooc-news-dev-service-user】这个微服务子工程上,配置)】等文章;

(2)application-dev.yml;

server:
  port: 8005

spring:
  redis:
    database: 0
    host: 192.168.***.***
    port: 6380
    password: 12345

# 设置域名,在java代码中获取,这里是资源配置
# 这儿的website和domain-name可以瞎写,只要能做到见名知意就行;
website:
  domain-name: imoocnews.com

# dev 开发环境开启mybatis日志
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl


说明:

(1)这儿的内容,以前就介绍过;如有需要,可以参考:

          ● 【20:第三章:开发通行证服务:3:在程序中,打通redis服务器;】;

          ● 【28:第三章:开发通行证服务:11:在配置文件中定义属性,然后在代码中去获取;】;

          ● 【38:第三章:开发通行证服务:21:利用AOP,实现【监控方法执行时间,并打印相关日志】的需求;(对于Mybatis)在控制台打印SQL语句;】;

(3)application-prod.yml;

server:
  port: 8005

spring:
  redis:
    database: 0
    host: 192.168.223.130
    port: 6380
    password: 12345

# 设置域名,在java代码中获取,这里是资源配置
# 这儿的website和domain-name可以瞎写,只要能做到见名知意就行;
website:
  domain-name: imoocnews.com

3.logback-spring.xml:配置logback日志组件;

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <!-- 指定日志文件的存储地址,使用绝对路径 -->
<!--    <property name="LOG_HOME" value="/workspaces/logs/imooc-news-dev/service-admin"/>-->
    <property name="LOG_HOME" value="e:/logs/imoocNewsLog/server-admin"/>

    <!-- Console 输出设置 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%white(%d{mm:ss.SSS}) %green([%thread]) %cyan(%-5level) %yellow(%logger{36}) %magenta(-) %black(%msg%n)</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件输出的文件名 -->
            <fileNamePattern>${LOG_HOME}/service-admin.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--<logger name="org.apache.ibatis.cache.decorators.LoggingCache" level="DEBUG" additivity="false">-->
    <!--<appender-ref ref="CONSOLE"/>-->
    <!--</logger>-->

    <root level="info"><!--因为debug的日志信息,太多了,所以我么把输出的日志级别设置为了info-->
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

说明:
(1)可以参考【43:第四章:开发文件服务:4:创建子工程【imooc-news-dev-service-files】,文件服务模块;】,进行对比;这儿只修改了两个地方:

4.Application主启动类;

package com.imooc.admin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import tk.mybatis.spring.annotation.MapperScan;


@SpringBootApplication
@MapperScan(basePackages = "com.imooc.admin.mapper")
@ComponentScan(basePackages = {"com.imooc","org.n3r.idworker"})
public class Application {

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

说明:
(1)


四:【admin】管理服务,创建测试用的HelloController,看看项目是否OK;

(1)先全局install一下整个项目;

(2)启动【admin】服务的主启动类;

(3)记得要打开SwitchHost开启虚拟域名映射;

……………………………………………………

(4)通过浏览器,访问/hello接口;

(5)附加:如果在启动Tomcat和【admin】服务时,遇到端口被占用的情况;可以参考【tomcat运行时候出现java.net.BindException: Address already in use: JVM_Bind错误解决方法】去看看端口是否被占用,如果被占用则可以尝试关闭占用程序的进程;

         ● 由于Tomcat的shutdown端口为8005;而我们的【admin】管理服务的端口也设为了8005;所以,为了避免冲突,自己将Tomcat的shutdown端口改为了2724;

         ● 可以参考【Tomcat的shutdown端口安全处理】;

         ●【由Tomcat 8005端口想到的...】这篇文章应该也不错,自己还没看;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值