(4条消息) 手把手教你Spring 取代XML使用注解,并测试_学习微站的博客-CSDN博客

53 阅读1分钟

一、文件放的位置大概是这样的
在这里插入图片描述

测试结果OK
postman测试

http://localhost:8087/user/saveOrUpdate
在这里插入图片描述
数据库增加的数据
在这里插入图片描述
二、pom.xml
有些后面写代码的过程引入也OK

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>cn.nacos.consumer</groupId>
	<artifactId>nacos-consumer</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>nacos-consumer</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<spring-boot.version>2.1.0.RELEASE</spring-boot.version>
	</properties>

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


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!--nacos依赖-->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.0.1.RELEASE</version>
		</dependency>

		<!--openfeign依赖-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
			<version>2.1.1.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.10</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-annotations</artifactId>
			<version>1.5.13</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.2.0</version>
		</dependency>


	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${spring-boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

三、application.yml datasource里面改为自己本地数据库的信息(建好自己的数据库)

server:
  port: 8087
spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  #mysql config
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/study_cloud?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
    username: root
    password: root
  main:
    allow-bean-definition-overriding: true

logging:
  level:
    root: info
    org.springframework: info
mybatis-plus:
  mapper-locations: classpath*:xml
  type-aliases-package: com.example.nacosprovider.entity

四、启动类 NacosConsumerApplication,@ComponentScan注解可以启动时扫描到相应的类或接口

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ComponentScan("com.example.nacosprovider.*")
public class NacosConsumerApplication {


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


}

====加入实体类,@Data插件如果生效的话,就不要这些get set方法

@Data
@Api("")
public class User {
	@ApiModelProperty("")
	private Long id;

	@ApiModelProperty("")
	private String username;

	@ApiModelProperty("")
	private Integer merchantId;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public Integer getMerchantId() {
		return merchantId;
	}

	public void setMerchantId(Integer merchantId) {
		this.merchantId = merchantId;
	}
}


@Data public class UserSaveOrUpdateReq { @ApiModelProperty("") private String username;

public String getUsername() {
	return username;
}

public void setUsername(String username) {
	this.username = username;
}

}


五、Controller

@RestController public class UserController { @Resource private UserService userService;

@ApiOperation("添加或修改")
@PostMapping("/user/saveOrUpdate")
public Boolean saveOrUpdate(@RequestBody UserSaveOrUpdateReq userSaveOrUpdateReq) {
	return userService.saveOrUpdate(userSaveOrUpdateReq);
}

}


六、Service层

public interface UserService extends IService { /** * * @param userSaveOrUpdateReq * @return */ Boolean saveOrUpdate(UserSaveOrUpdateReq userSaveOrUpdateReq); }

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
	@Resource
	private UserMapper userMapper;
	@Override
	public Boolean saveOrUpdate(UserSaveOrUpdateReq userSaveOrUpdateReq) {
		User user = new User();
		user.setUsername(userSaveOrUpdateReq.getUsername());
		user.setMerchantId(1);
		int insert = userMapper.insert(user);
		return (insert > 0 ? true : false);
	}
}


```

七、Mapper层

```
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

```

八、配置类 StudyConfiguration.java  
Spring 抛除XML使用注解  
<context:Component-Scan base-package=“com.example.nacosprovider.mapper”> </context:Component-Scan>

```
@Configuration
@ComponentScan(basePackages = "com.example.nacosprovider.mapper")
public class StudyConfiguration {
}

```

最后 测试通过  
![在这里插入图片描述](https://img-blog.csdnimg.cn/0bc89adb3d0c461e9c9db63f5a28ebd7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-v5q2M5Y-v5rOj5Zi_,size_20,color_FFFFFF,t_70,g_se,x_16)  
数据库增加的数据  
![在这里插入图片描述](https://img-blog.csdnimg.cn/29ac77e4976e436fab74bdafe810eca6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-v5q2M5Y-v5rOj5Zi_,size_20,color_FFFFFF,t_70,g_se,x_16)

> 本文使用 [文章同步助手](https://juejin.cn/post/6940875049587097631) 同步