SpringBoot在IDEA中的配置

摘要:
一、将Maven项目初始化为SpringBoot项目1.先创建一个Maven项目(可使用Maven原型创建:maven-archetype-webapp),在pom.xml中配置好标签和标签spring-boot-starter-parentorg.springframewo

一、将Maven项目初始化为SpringBoot项目

1.先创建一个Maven项目(可使用Maven原型创建:maven-archetype-webapp),在pom.xml中配置好<parent>标签和<dependency>标签

<parent>
  <artifactId>spring-boot-starter-parent</artifactId>
  <groupId>org.springframework.boot</groupId>
  <version>2.1.5.RELEASE</version>
</parent>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.新建一个Application类,注解为@SpringBootApplication

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

3.在controller包中创建一个Controller进行测试 (@Controller

Controller默认返回至指定页面,若需返回自定义内容至页面,需加上@ResponseBody注解,或@Controller将改为@RestController

在类上加上@RequestMapping为类相对于根的请求路径,
在方法上加上@RequestMapping为方法相对于类的请求路径
@PostMapping@GetMapping可以限制@RequestMapping的请求方式

二、连接数据库,添加JDBC与事务

1.@ConfigurationProperties@Value注解

前者的优势为松散绑定(驼峰,中划线,下划线转换)、对象引导(对象内部的属性注入)

2.添加依赖

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.13</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

3.编写数据库配置(application.properties/yml)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/*database*?serverTimezone=UTC&characterEncoding=utf-8
    username: root
    password: root

4.创建Service层测试类

先创建一个pojo对象,加上@Data注解可以省去getter和setter方法

@Data
public class User
{
	private String name;
	private String id;
}

service包下创建Service1

@Service
public class Service1
{
	@Transactional
	public void saveUser(User user){
		System.out.println("save user");
	}
}


三、修改SpringMVC端口,配置拦截器

1.修改tomcat端口

application.yml中加入

server:
  port: 80

2.新建一个拦截器,实现HandlerInterceptor接口,并且加入拦截器链

interceptor包冲创建一个拦截器类

@Slf4j
public class Interceptor1 implements HandlerInterceptor
{
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		log.debug("PreHandle");
		return true;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
		log.debug("PostHandle");
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
		log.debug("AfterHandle");
	}
}

注意,使用@Slf4j需要设置日志级别,在application.yml中加入

#日志记录级别
logging:
  level:
    *target*: debug
    org.springframework: info

config包中创建一个类,在拦截器链中加入该拦截器

@Configuration
public class MvcConfig implements WebMvcConfigurer
{
	@Bean
	public Interceptor1 interceptor1(){
		return new Interceptor1();
	}

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(interceptor1()).addPathPatterns("/*");
	}
}


四、整合MyBatis与通用Mapper

1.添加依赖

<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.1.4</version>
</dependency>
<dependency>
  <groupId>tk.mybatis</groupId>
  <artifactId>mapper-spring-boot-starter</artifactId>
  <version>2.1.5</version>
</dependency>

2.配置mybatis

application.yml中加入

mybatis:
  #实体类别名包路径
  type-aliases-package: com.bill.pojo
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3.添加Mapper扫描注解

Application类上添加@MapperScan("包路径")注解

注意!如果使用tk包中的通用Mapper,MapperScan引用的包应使用同样的包

4.创建Mapper测试类,使用通用Mapper

mapper包中创建Mapper1

public interface Mapper1 extends Mapper<User>{}

由于使用通用Mapper,很多常用方法不用写实现

Tips.在pojo类上添加注解

@Data
@Table(name = "user_table")
public class User
{
	private String name;

	//主键、主键回填
	@Id
	@KeySql(useGeneratedKeys = true)
	private String id;
}

Tips.在Service中注入Mapper,在Controller中注入Service,进行测试


五、整合Junit测试

1.添加依赖

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

2.创建测试类

在需要创建测试的类名上按Ctrl+Shift+T,创建一个测试类,并加上注解

@RunWith(SpringRunner.class)
@SpringBootTest
public class Service1Test
{
	@Autowired
	private Service1 service1;

	@Test
	public void queryById() {
		//...
	}
}

3.测试Junit是否能成功运行

如果报错:Could not initialize plugin: interface org.mockito.plugins.MockMaker,可以添加如下依赖

<dependency>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy</artifactId>
  <version>1.8.16</version>
</dependency>
<dependency>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy-agent</artifactId>
  <version>1.8.16</version>
  <scope>test</scope>
</dependency>

六、整合Redis

1.添加依赖

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

2.在application.yml中添加配置

spring:
  redis:
    host: localhost
    port: 6379

3.添加测试类,注入Redis

@Autowired
private RedisTemplate redisTemplate;

七、附件

1.完整依赖

<parent>
    <artifactId>spring-boot-starter-parent</artifactId>
    <groupId>org.springframework.boot</groupId>
    <version>2.1.5.RELEASE</version>
</parent>

<dependencies>
    <!--Junit测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <!--SpringBoot相关启动器-->
    <!--web-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--jdbc-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!--mybatis-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <!--通用Mapper-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.1.5</version>
    </dependency>
    <!--Junit-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>

    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>1.8.16</version>
    </dependency>
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>1.8.16</version>
        <scope>test</scope>
    </dependency>


    <!--Mysql连接-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
    </dependency>


    <!--LOMBOK-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>

免责声明:文章转载自《SpringBoot在IDEA中的配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql存储过程 详细注释简单的thinkPHP3.2运行实例。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

VSCode, 当今最流行的免费开源代码编辑器,微软出品,必属精品

Visual Studio代码是一个轻量级但功能强大的源代码编辑器,可以在桌面上运行,可以用于Windows、MacOS和Linux。直接在编辑器中检查差异,暂时保存文件并提交。Visual Studio代码产品在初始操作中的内部代码控制可以通过编辑器内的SCM支持(包括丰富的Git集成)加快发布周期。用户界面-介绍VSCode编辑器的基本UI、命令和功能。...

Spring Boot 核心配置文件 bootstrap &amp;amp; application

boostrap由父ApplicationContext加载,比applicaton优先加载boostrap里面的属性不能被覆盖3、bootstrap/application的应用场景application配置文件这个容易理解,主要用于SpringBoot项目的自动化配置。这个父级的SpringApplicationContext是先加载的,在加载appli...

SQL SERVER 查看数据库执行过哪些语句(SQL历史语句记录)

SQLSERVER查看数据库已执行的语句(SQL历史语句记录)1.查看SQL执行效率和语句SelectTOP1000ST。textAS“SQL语句已执行”,QS。execution_CountAS'执行次数',QS。total_ elapsed_timeAS“耗时”,QS。total_logical_ReadsAS“逻辑读取次数”,QS。total_logi...

硬中断与软中断的区别!

在多核系统上,一个中断通常只能中断一个CPU(也有一种特殊情况,即主机上有一个硬件通道。它可以在没有主CPU支持的情况下同时处理多个中断。软中断:1。软中断与硬中断非常相似。生成软中断的进程必须是当前正在运行的进程,因此它们不会中断CPU。...

Ubuntu安装时怎样分区

应该首先放置启动分区。并将引导设置为主分区。如果是双系统或多系统安装,通常可以选择逻辑分区。首先,Grub可以在1024柱面后面引导Linux内核;第二,即使有多个Linux安装,/boot也可以完全不共享。此外,非独立/引导分区仅占用根文件夹下约20MB的空间。所以决定是否启动。...

tomcat不打印日志的原因及解决办法

tomcat的日志在刚启动的时候可以正常打印,系统正常运行几天以后就会出现不打印日志或者日志打印的内容缺少的情况,但是系统还是可以正常使用的,重启tomcat以后日志打印就又正常了,请问一下这是什么原因呢?日志框架使用的是log4j,使用了日志按天分割,每天的日志量是5G左右1.下载日志jar包,例如:commons-logging-1.1.1.jar。放在...