番禺做网站要多少钱,网站建设商城建设,wordpress 显示分类列表,现在网络公司做网站是用cms还是新版编程_一、引言
1、什么是spring boot#xff1f; Spring Boot是由Pivotal团队提供的全新框架#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式#xff…
一、引言
1、什么是spring boot Spring Boot是由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置从而使开发人员不再需要定义样板化的配置。通过这种方式Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 2、特点 Spring Boot还提供了强大的监控能力可以监控应用程序的运行状态。这些特点使得Spring Boot成为Java开发人员的首选框架之一。 独立运行Spring Boot可以创建独立的Spring应用程序并且基于其Maven或Gradle插件可以创建可执行的JARs和WARs。无XML配置Spring Boot简化了配置过程它采用约定优于配置的方式通过自动化配置和默认设置来简化开发者的配置工作减少了繁琐的配置代码。同时它也支持外部化配置应用程序的配置更加灵活和可管理。嵌入式Web容器Spring Boot内置了多种常用的Web容器如Tomcat、Jetty、Undertow等使得构建独立的Web应用程序变得更加简单。自动管理依赖Spring Boot通过提供一系列的starter依赖自动管理应用程序的依赖关系简化了依赖管理的工作。丰富的开发者工具Spring Boot提供了丰富的开发者工具如热部署、自动重启、自动配置报告等提高了开发效率。可扩展性基于Spring框架Spring Boot支持丰富的扩展点和插件使得应用程序的功能可以方便地进行扩展和定制。 二、快速搭建 1、新建 新建项目选择好你项目的位置和项目名。设置阿里的服务器start.aliyun.com。选择你的语言Java和类型maven。选择你的jdk版本。 2、选择依赖 我们选择一些必要的一些依赖spring boot的版本我们尽量不要去动选择它自己匹配的版本就行。 目录介绍 src/main/java主程序入口 Application可以通过直接运行该类来启动SpringBoot应用 src/main/resources配置目录该目录用来存放应用的一些配置信息比如应用名、服务端口、数据库配置等。由于我们应用了Web模块因此产生了 static目录与templates目录前者用于存放静态资源如图片、CSS、JavaScript等后者用于存放Web页面的模板文件。 src/test单元测试目录生成的 ApplicationTests 通过 JUnit4实现可以直接用运行 SpringBoot应用的测试。 application.properties/application.ymlØ 用于存放程序的各种依赖模块的配置信息比如服务端口数据库连接配置等。 3、配置修改 把我们的配置文件application.properties修改成application.yml文件。 mybatis:# 设置mapper文件的位置mapper-locations: classpath:mappers/*xml# 设置实体类的别名type-aliases-package: com.example.springboot01.mybatis.entity
server:# 设置端口号port: 8080# 项目名servlet:context-path: / 如果定义了这两个依赖我们需要进行注释才能运行。 dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.2/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency 4、运行 进入我们的主程序入口运行即可。 三、集成mybatis数据库连接 1、配置 在application.yml里面配置MySQL、mybatis。 配置你的数据库和用户、密码还有你的xml文件位置、实体类别名。 mybatis:# 设置mapper文件的位置mapper-locations: classpath*:mapper/*.xml# 设置实体类的别名type-aliases-package: com.example.springboot01.entity
server:# 设置端口号port: 8080# 项目名servlet:context-path: /
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Drivertype: com.zaxxer.hikari.HikariDataSourceurl: jdbc:mysql://localhost:3306/bookshop?useUnicodetruecharacterEncodingutf8username: rootpassword: 123456 确保你的pom.xml里面有mybatis和MySQL的依赖 2、生成代码 确保你的idea里面有以下这个插件 用idea连接你的数据库右键你的数据表 项目路径生成路径基本路径包名 选择Lombok 3、测试 在实体类添加有参无参 编写号调用的接口方法等 编写Controller层 package com.example.springboot01.controller;import com.example.springboot01.entity.TBook;
import com.example.springboot01.service.TBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;RestController
RequestMapping(/book)
public class TBookController {Autowiredprivate TBookService tBookService;// http://127.0.0.1:8080/book/namelisiRequestMapping(/list)public Object list() {ListTBook tBooks tBookService.selectAll();return tBooks;}} 【注意】mapper所在的包必须要在启动类开启扫描MapperScan 启动测试http://localhost:8080/book/list 四、集成pagehelper分页 1、配置插件及文件
在pom.xml里面添加插件 !-- 分页插件 --dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.6/version/dependency
配置application.yml
#pagehelper分页插件配置
pagehelper:# 数据库方言helperDialect: mysql# 是否启用 reasonablereasonable: true# 是否支持方法参数supportMethodsArguments: true# 参数params: countcountSql
2、优化分页 编写分页实体 package com.example.springboot01.page;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;Data
NoArgsConstructor
AllArgsConstructor
Accessors(chain true)
public class PageBean {private Integer page 1;private Integer rows 5;private Long total 0L;private boolean open true;public int start() {return (page - 1) * rows;}public int previous() {return Math.max(this.page - 1, 1);}public int next() {return Math.min(this.page 1, maxPage());}public int maxPage() {return (int) Math.ceil(this.total.intValue() / (this.rows * 1.0));}}编写分页注解 package com.example.springboot01.page;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;Target(ElementType.METHOD)
Retention(RetentionPolicy.RUNTIME)
public interface PageAnnotation {
}编写切面 package com.example.springboot01.page;import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;Aspect
Component
public class PageAspect {Pointcut(annotation(PageAnnotation))public void cut() {}Around(cut())public Object aroundHandler(ProceedingJoinPoint point) throws Throwable {Object[] args point.getArgs();PageBean pageBean new PageBean().setOpen(false);for (Object arg : args) {if (arg instanceof PageBean) pageBean (PageBean) arg;}PageHelper.startPage(pageBean.getPage(), pageBean.getRows(), pageBean.isOpen());Object val point.proceed();if (pageBean.isOpen()) {Page? page (Page?) val;pageBean.setTotal(page.getTotal());}return val;}}3、实例 编写接口类调用分页注解 PageAnnotation package com.example.springboot01.service.impl;import com.example.springboot01.entity.TBook;
import com.example.springboot01.mapper.TBookMapper;
import com.example.springboot01.page.PageAnnotation;
import com.example.springboot01.page.PageBean;
import com.example.springboot01.service.TBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** 软件包名 com.example.springboot01.service.impl* 用户 tgq* create 2023-12-12 下午3:33* 注释说明*/
Service
public class TBookServiceImpl implements TBookService {Autowiredprivate TBookMapper tBookMapper;Override
// 分页注解PageAnnotationpublic ListTBook selectAll(PageBean pageBean) {return tBookMapper.selectAll();}}Controller层方法调用 RequestMapping(/list)public Object list2(PageBean pageBean) {ListTBook tBooks tBookService.selectAll(pageBean);return tBooks;} 运行结果 五、集成druid数据库连接池
1、导入插件 !-- 连接池--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.16/version/dependency
2、配置 在yml里面配置 type: com.alibaba.druid.pool.DruidDataSourcedruid:# 初始化时建立物理连接的个数initial-size: 5# 最小连接池数量min-idle: 5# 最大连接池数量max-active: 20#配置获取连接等待超时的时间max-wait: 60000#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒time-between-eviction-runs-millis: 60000# 一个连接在池中最小生存的时间,单位是毫秒min-evictable-idle-time-millis: 30000# 用来检测连接是否有效的 sql,要求是一个查询语句validation-query: SELECT 1 FROM DUAL# 建议配置为 true,不影响性能,并且保证安全性test-while-idle: true# 申请连接时执行 validationQuery 检测连接是否有效test-on-borrow: true# 归还连接时执行 validationQuery 检测连接是否有效test-on-return: false# 是否缓存 preparedStatement,即 PsCache# PSCache 对支持游标的数据库性能提升巨大,比如说 oracle,而 mysql 则建议关闭pool-prepared-statements: true# 要启用 PSCache,必须配置大于0max-pool-prepared-statement-per-connection-size: 20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计filter:stat:merge-sql: trueslow-sql-millis: 5000# 基础监控配置web-stat-filter:enabled: trueurl-pattern: /*exclusions: *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*session-stat-enable: truesession-stat-max-count: 100stat-view-servlet:enabled: trueurl-pattern: /druid/*reset-enable: truelogin-username: admin #设置监控页面的登录名和密码login-password: adminallow: 127.0.0.1 #deny: 192.168.1.100 六、整合Log日志
1、配置 配置application.yml #日志配置。
logging:level:com.example.springboot01.mapper: debug 重新运行即可可看到SQL语句等 七、打包
1、打包方式 在pom文件里面如果没有填写需要打包的方式可以自己进行添加。可选择jar包和war包 2、更改配置 在pom.xml文件里面更改配置。 把skiptrue/skip改成false 3、打包 我们右键选择按照步骤进行操作 在target里面找到我们的jar包 4、运行 把我们打好的jar包放到随意的一个地方运行命令 java -jar springboot01-0.0.1-SNAPSHOT.jar springboot01-0.0.1-SNAPSHOT.jar为你的jar包名。 我们进入浏览器进行访问即可 spring boot 常问的⑧个问题
在Spring Boot面试中面试官通常会问一些关于Spring Boot基础知识、配置、应用场景、最佳实践以及性能优化等方面的问题。以下是一些常见的面试问题及回答建议 什么是Spring Boot 回答Spring Boot是一个基于Java的开源框架它旨在简化Spring应用程序的创建和部署。通过使用约定大于配置的方法Spring Boot可以自动配置大部分常见的设置让开发者能够快速搭建应用程序框架并专注于业务逻辑。 Spring Boot有哪些优点 回答Spring Boot的优点包括 简化开发通过自动配置和约定大于配置的方法减少了开发者的配置工作量。快速构建提供了大量内置的功能和库加快了应用程序的开发速度。易于部署内置了嵌入式服务器可以轻松地将应用程序部署到云端或本地服务器。丰富的插件支持各种第三方库和插件方便扩展功能。 Spring Boot的核心概念是什么 回答Spring Boot的核心概念包括自动配置、约定大于配置、分离关注点、单一职责原则等。其中自动配置是通过使用Java Config或XML配置文件来定义应用程序的组件和属性约定大于配置是指Spring Boot根据约定来自动配置应用程序减少开发者的手动配置工作分离关注点是指将应用程序拆分为多个独立的模块降低耦合性单一职责原则是指每个组件应该只负责一个功能提高代码的可读性和可维护性。 如何创建一个Spring Boot应用程序 回答创建一个Spring Boot应用程序需要以下几个步骤 添加依赖在pom.xml文件中添加Spring Boot Starter依赖。创建主类创建一个包含main()方法的类作为应用程序的入口。配置文件在src/main/resources目录下创建application.properties或application.yml文件用于配置应用程序的属性。创建控制器创建Java类并使用RestController或Controller注解来定义应用程序的路由和请求处理方法。 如何配置Spring Boot应用程序 回答在Spring Boot中可以通过application.properties或application.yml文件来配置应用程序。常见的配置包括数据库连接、端口号、日志级别等。同时也可以使用Configuration类来定义自定义的配置类并在其中声明Bean组件和属性。 Spring Boot中有哪些常用的注解 回答Spring Boot中常用的注解包括Component、Service、Repository、Controller、RequestMapping等。这些注解可以用于定义组件、请求处理方法、路由等。此外还有Autowired、Qualifier等注解用于实现依赖注入等功能。 Spring Boot的最佳实践有哪些 回答Spring Boot的最佳实践包括 使用Lombok库减少模板代码的编写。使用Valid注解进行表单验证。使用RequestParam注解获取请求参数。使用RequestBody注解获取请求体中的数据。使用GetMapping和PostMapping注解替代RequestMapping注解来简化请求处理方法的定义。 如何优化Spring Boot应用程序的性能 回答优化Spring Boot应用程序的性能可以考虑以下几个方面 使用适当的缓存策略如使用Redis缓存数据库查询结果等。优化数据库查询语句避免使用SELECT *语句只查询需要的字段。使用Gzip压缩响应内容减少传输的数据量。优化代码逻辑避免冗余计算和重复查询。 我的分享就到这里感谢大家在评论区交流