基于Springboot的个人博客开发

1. 使用IDEA创建Springboot项目

使用Spring Initializr创建Springboot项目,选择使用maven构建项目,中间选择依赖时,根据需要,选择了web、jpa、mysql、thymeleaf、devtools等;

如果依赖下载的太慢的话可以修改中央仓库为阿里云的仓库。

2. 项目的开发

  • thymeleaf访问map
    <p th:text="${ArticleComments['__${article.getId()}__'].size()}" >
  • 使用spring security进行访问控制

a. 添加依赖

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

b. 基于注解方式接入security

    @Configuration
    @EnableWebSecurity
    @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true)
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    }

c. 基于内存中数据的用户认证

重写WebSecurityConfigurerAdapter类中的protected void configure(AuthenticationManagerBuilder auth)方法;

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth
                .inMemoryAuthentication()
                .withUser("admin")
                .password("admin")
                .authorities("ADMIN"); //分配admin身份
        }

d. 自定义拦截器和登录页面

重写WebSecurityConfigurerAdapter类中的protected void configure(HttpSecurity http)方法;

        @Override
        protected void configure(HttpSecurity http) throws Exception {
    
            http.authorizeRequests()
                    .antMatchers("/").permitAll()   //任何人都可以访问
                    .antMatchers("/admin/**").access("hasRole('ADMIN')"
                    //只有具有admin身份的用户可以访问/admin路径下的页面
                    .and()             					.formLogin().loginPage("/login").usernameParameter("username")
                        .passwordParameter("password").and()
                     .httpBasic();
        }

e. 解决There is no PasswordEncoder mapped for the id "null"报错

        @Bean
        public static NoOpPasswordEncoder passwordEncoder() {
            return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
        }

参考:

Securing a Web Application

spring security 入门教程

  • 使用Git进行版本控制
    在IDEA中使用Git进行版本控制

3.将项目导出成war包并部署在阿里云ESC上

  • 导出war包

该过程中有以下几个注意点:

a. 需要改变application.properties中连接数据库的设置;

b. 需要在pom.xml中加入依赖

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-tomcat</artifactId>
    	<scope>provided</scope>
    </dependency>

provided表明该包只在编译和测试的时候用,使得项目部署在tomcat下后不与外部的tomcat冲突;

并将

<packaging>jar</packaging>

改为

<packaging>war</packaging>

c. 需要改MyblogApplication

继承SpringBootServletInitializer,并覆写方法

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)

之后按网上的教程打包:

file->project structure->Artifacts 增加一个web application:archive

build->build Artifacts 得到war包

  • Centos上环境的搭建

参考:

手工部署Java Web项目

打造完美接口文档 - 发布springboot应用到阿里云服务器

阿里云部署Java网站和微信开发调试心得技巧(上)

  • 使用ftp上传war包

使用了FileZilla,十分方便

  • 通过server.xml更改webapp映射

在tomcat/conf/server.xml中内添加:

    <Context path="" docBase="/usr/local/tomcat/webapps/xiguashu-v1" debug="0" privileged="true"> </Context>

path为虚拟路径

docBase为web应用的物理路径

这样做使得不需通过x.x.x.x:port/project来访问,而可以通过x.x.x.x:port/path

  • 使用sudo ./startup.sh 启动80端口

通过修改server.xml,使tomcat监听80端口

        <Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

但启动tomcat后发现80端口并没有被侦听,关闭防火墙、设置安全组之后依然不行。

搜索后得知,非root权限下运行tomcat无法监听1024以下的端口。

最后的方法是:

    sudo ./startup.sh

奇怪的是以下命令却还是无法启动:

    sudo service tomcat start
  • 添加域名解析
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
### 回答1: 基于Spring Boot的个人博客系统项目源码是一个用于构建个人博客网站的开源项目。它提供了一个完整的后台管理和前台展示功能,可以方便地构建和管理自己的博客网站。 该项目的源码使用Spring Boot框架进行开发,借助Spring Boot的快速开发特性,可以快速搭建起一个功能完善的个人博客系统。Spring Boot提供了许多开箱即用的功能和便捷的配置方式,使得开发者可以专注于具体业务逻辑的实现,而不需要过多关注项目的架构和配置。 个人博客系统的源码包含了后台管理部分和前台展示部分。后台管理部分提供了一系列管理功能,包括文章管理、标签管理、分类管理、评论管理等。管理员可以通过后台管理界面对博客文章进行发布、编辑和删除,管理标签和分类,审核评论等操作。 前台展示部分是博客网站的实际展示页面,包括文章列表、文章详情、分类列表、标签列表等页面。用户可以通过前台页面浏览已发布的博客文章,查看文章详情,查找特定标签和分类的文章等。 源码中使用了MySQL数据库来存储博客的数据,并使用了MyBatis作为持久层框架,简化了数据库操作的过程。同时,还使用了Thymeleaf模板引擎来实现前台页面的渲染。 该项目的源码还提供了一些其他功能和特性,比如用户注册和登录、验证码生成和验证、文件上传和下载等。所有的功能都经过了良好的设计和封装,可以方便地进行二次开发和定制。 总之,基于Spring Boot的个人博客系统项目源码提供了一个完整的博客网站解决方案,使得构建和管理个人博客网站变得更加简单和高效。通过该源码,可以快速搭建起一个功能完善的个人博客网站,并进行二次开发和定制。 ### 回答2: 基于Spring Boot的个人博客系统项目源码是一个开源的代码库,用于构建一个完整的个人博客系统。该项目源码包含了一系列的功能模块和技术实现,使用户能够方便地创建、编辑和管理自己的博客内容。 该项目源码的主要特点包括: 1. 使用Spring Boot框架:Spring Boot是一个快速构建应用程序的框架,可以大大简化开发流程并提高代码质量。该项目源码采用了Spring Boot作为主要开发框架,可以快速搭建整个博客系统。 2. 支持用户认证和授权:该项目源码实现了用户认证和授权功能,只有经过认证的用户才能进行博客的编辑和管理操作。用户可以注册新账户并进行登录操作,系统会自动为每个用户分配一个唯一的身份标识。 3. 支持博客的创建和编辑:用户登录后可以点击新建博客按钮,进入博客编辑页面。用户可以填写博客的标题、内容和标签等信息,并可以上传图片或视频作为博客的附加内容。编辑完成后,用户可以保存草稿或立即发布博客。 4. 支持博客的浏览和评论:用户可以在系统主页上浏览最新的博客内容,并且可以对感兴趣的博客进行评论和点赞操作。系统会对博客进行分页处理,方便用户阅读和浏览。 5. 支持博客的搜索和分类:该项目源码实现了博客内容的搜索和分类功能,用户可以根据关键词进行搜索,也可以通过标签或分类进行博客的筛选。系统会根据用户的搜索行为进行相关博客的推荐。 总之,基于Spring Boot的个人博客系统项目源码提供了一套完整的博客管理解决方案,用户可以通过该项目源码快速构建自己的个人博客系统,并实现博客的创建、编辑、浏览和评论功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值