搭建项目运行的SpringBoot环境
搭建项目运行的SpringBoot环境:
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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mashibing</groupId> <artifactId>CloudProgram</artifactId> <version>0.0.1-SNAPSHOT</version> <name>CloudProgram</name> <description>CloudProgram</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.3.7.RELEASE</spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.9</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--lombok插件--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <!--读取Excel文件依赖包--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </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> </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> <version>3.8.1</version> <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> <version>2.3.7.RELEASE</version> <configuration> <mainClass>com.mashibing.CloudProgramApplication</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>
2,配置生成文件的测试类
package com.mashibing; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import org.junit.jupiter.api.Test; public class Mytest { @Test public void testGenerator() { AutoGenerator autoGenerator = new AutoGenerator(); //全局配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setAuthor("lian") .setOutputDir("D:\\IDEA\\Maven_Mybaties\\SpringMvc\\CloudProgram\\src\\main\\java")//设置输出路径 .setFileOverride(true)//设置文件覆盖 .setIdType(IdType.AUTO)//设置主键生成策略 .setServiceName("%sService")//service接口的名称 .setBaseResultMap(true)//基本结果集合 .setBaseColumnList(true)//设置基本的列 .setControllerName("%sController"); //配置数据源 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver").setUrl("jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC") .setUsername("root").setPassword("root"); //策略配置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setCapitalMode(true)//设置全局大写命名 .setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略 //.setTablePrefix("tbl_")//设置表名前缀 .setInclude(); //包名配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.mashibing").setMapper("mapper") .setService("service").setController("controller") .setEntity("bean").setXml("mapper"); autoGenerator.setGlobalConfig(globalConfig).setDataSource(dataSourceConfig) .setStrategy(strategyConfig).setPackageInfo(packageConfig); autoGenerator.execute(); } }
3,配置application.yml文件
# 启动端口 server: port: 8070 # 配置数据源 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC username: root password: root # 配置mybatis mybatis: mapper-locations: classpath:com/mashibing/mapper/*.xml configuration: map-underscore-to-camel-case: true # log日志打印 logging: level: com: mashibing: mapper: debug
4,配置log4j
# ??????%n log4j.rootLogger=info, stdout # MyBatis ???? log4j.logger.com.mashibing.mapper=TRACE # ????? log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Connection = DEBUG log4j.logger.java.sql.Statement = DEBUG log4j.logger.java.sql.PreparedStatement = DEBUG log4j.logger.java.sql.ResultSet = DEBUG
5,通常涉及跨域,即前后端交互调用API接口问题--这里创建一个包在启动了同级目录下以及类,名字统一Corsconfig
package com.mashibing.Corsconfig; //当通过文件配置跨域请求时,则配置的是全局 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Configuration public class Corsconfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); // 设置属性 // 允许跨域请求的地址,*表示所有 corsConfiguration.addAllowedOrigin("*"); // 跨域的请求头 corsConfiguration.addAllowedHeader("*"); // 跨域的请求方法 corsConfiguration.addAllowedMethod("*"); // 在跨域请求的时候使用同一个 Session corsConfiguration.setAllowCredentials(true); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); //配置 可以访问的地址 source.registerCorsConfiguration("/**", buildConfig()); return new CorsFilter(source); } }
6,启动类的配置
package com.mashibing; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com/mashibing/mapper")//---此处是要扫面的mappre文件路径 public class CloudProgramApplication { public static void main(String[] args) { SpringApplication.run(CloudProgramApplication.class, args); } }
7,测试类参考
package com.mashibing; import com.mashibing.bean.FcUnit; import com.mashibing.service.FcUnitService; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; import java.util.List; @SpringBootTest class CloudProgramApplicationTests { @Resource FcUnitService fcUnitService; @Test void contextLoads(String buildingCode) { buildingCode = "7B2"; List<FcUnit> fcUnits = fcUnitService.selectUnitByBuildingCode(buildingCode); System.out.println(fcUnits); } }
8,返回给前端的内容一般用创建result包,R类
package com.mashibing.result; public class R { private Integer code=200; private String message=""; private Object result; public R(Integer code, String message, Object result) { this.code = code; this.message = message; this.result = result; } public R() { } public R(Object result) { this.result = result; } @Override public String toString() { return "R{" + "code=" + code + ", message='" + message + '\'' + ", result=" + result + '}'; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Object getResult() { return result; } public void setResult(Object result) { this.result = result; } }
9,controller层示例
@RestController @RequestMapping("/zhCustomer") public class ZhCustomerController { @Resource ZhCustomerService zhCustomerService; /** * 新增业主信息 * * @return 返回存储信息 */ @PostMapping("/insertCustomer") public R insertCustomer(ZhCustomer zhCustomer) { Integer result = zhCustomerService.insertCustomer(zhCustomer); if (result == 1) { return new R("保存成功"); } return new R("保存失败,用户已存在"); }
10,service层示例
/** * 新增住户信息 * @param zhCustomer 传入住户信息表 * @return 返回插入的影响行数 */ Integer insertCustomer(ZhCustomer zhCustomer);
11,impl层示例
@Resource ZhCustomerMapper zhCustomerMapper; @Override public Integer insertCustomer(ZhCustomer zhCustomer) { QueryWrapper<ZhCustomer> queryWrapper = new QueryWrapper<>(); //根据customerCode在数据库中查询判断是否已经存在 queryWrapper.eq("customer_code",zhCustomer.getCustomerCode()); ZhCustomer customer = zhCustomerMapper.selectOne(queryWrapper); //返回null则是有效用户 if (customer==null){ return zhCustomerMapper.insert(zhCustomer); } return null; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY