首页 > 编程知识 正文

springboot开发环境搭建,python开发环境搭建

时间:2023-05-06 17:32:12 阅读:271570 作者:1231

文章目录 springboot + vue开发环境搭建一、vue开发环境搭建二、springboot项目搭建三、springboot+vue测试

springboot + vue开发环境搭建 一、vue开发环境搭建

见:vue开发环境搭建

二、springboot项目搭建

我使用 eclipse+maven开发工具,springboot版本号为:2.1.4.RELEASE

POM文件如下所示:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version></parent><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></dependency><!-- 数据库操作 hibernate --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

说明:我采用内嵌Tomcat,jar方式启动项目

项目结构如下图:

在项目根包下面创建项目启动类:Application.class

@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);System.out.println("spring boot Application started");}}

controller层代码:

@RestControllerpublic class ApplicationController {private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationController.class);@Autowiredprivate IUserService userService;@GetMapping("test")public String test() {return "test success";}}

启动项目测试,运行Appliction.class中的main方法,测试结果如下:

配置hibernate:

POM文件中添加依赖:spring-boot-starter-data-jpa和
mysql-connector-java,如上述POM文件所示。

配置application.properties文件
在src/main/resources下创建application.properties文件:

#datasource configspring.datasource.url=jdbc:mysql://localhost/springboottest?serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.jpa.show-sql = true

说明:serverTimezone=UTC是为了解决数据库时区问题,在数据库中设置也可以。

实体:

@Entity(name = "t_user")public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private int id;@NotNull(message = "username can not be null")private String username;@NotNull(message = "password can not be null")private String password;

因为数据库中设置了主键自增,所以这里设置实体主键ID为GenerationType.IDENTITY,否则会报错:

Dao:

import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;import springBoot.entity.User;@Repositorypublic interface UserDao extends JpaRepository<User, Integer> {User findByUsername(String username);}

单元测试

@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = { Application.class })public class ApplicationTest {@Autowiredprivate IUserService userService;@Autowiredprivate IPersonService personService;@Testpublic void startTest() {System.out.println("test success");} @Test public void saveUserTest() { User user = new User(); user.setUsername("zsandf"); user.setPassword("123456"); userService.save(user); System.out.println("save success"); } } 三、springboot+vue测试 前端配置代理,指向后端服务器:localhost:8080
在config目录下的index.js中配置 proxyTable: module.exports = { dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api': { target: 'http://localhost:8080', ws: true, changeOrigin: true, pathRewrite: { '^/api': '' }, } }, 后端解决跨域

在springboot/config下新增CorsConfig.class文件:

@Configurationpublic class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); // 1 corsConfiguration.addAllowedHeader("*"); // 2 corsConfiguration.addAllowedMethod("*"); // 3 return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); // 4 return new CorsFilter(source); }}

部分主要代码

前端vue代码

//登录组件<template><div id="log"><label>请输入用户名</label><input type="text" name="username" v-model="username"><label>请输入密码</label><input type="text" name="password" v-model="password"><br><button @click.prevent="doLogin">登录</button><br><h5>{{ loginMessage }}</h5></div></template><script>export default {name: 'login',data() {return{loginMessage: null,username: null,password: null};},methods: {doLogin() {// console.log("调用了doLogin方法");// var parms = {// username: this.username,// password: this.password// };// this.axios.get('/api/login?username=' + parms.username).then(result => {// console.log(parms);// console.log(result.data);// this.loginMessage = result.data;// })this.axios.post('/api/login', {username: this.username,password: this.password}).then(result => {console.log(result.data);this.loginMessage = result.data;})}}}</script><style></style>

后端controller代码

@RestControllerpublic class ApplicationController {private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationController.class);@Autowiredprivate IUserService userService;@GetMapping("test")public String test() {return "test success";}@PostMapping("login")public String loginTest(@RequestBody @Valid User user) {LOGGER.info(user.getUsername());LOGGER.info(user.getPassword());if (userService.isLegaled(user)) {return "login success!";}return "logon failed!!!!";}} 运行测试结果
分别启动前端、后端,然后访问:http://localhost:8090/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。