一 、选择一个合适的AI

        目前市面上有很多AI,智普清言,文言一心,通义千问等,笔者使用的是通义千问通义tongyi.ai_你的全能AI助手-通义千问,大家可以使用别的AI都是一样的操作流程。

二、基础部分

        main函数是启动类,它只能有一个

        mapper是mybatis的sql语句设计文件

        controller是实现层,model是用户实体模型,service是链接数据库的操作层,具体可以搜索三层开发。

        pom.xml是springboot的配置文件,用到maven管理的,刷新依赖是点下面这个按钮

        springboot创建  

点击create就可以创建成功

此时,一个基础项目就创建好了。

三、开始AI编程流程

1、后端生成大概系统

这是我的题目和要求,我们把这些全部复制上,发送给AI,并加上一句话:请为我根据springboot3+mybatis+Mysql设计一个同学录信息系统,要完整代码,你明白了吗?

大家可以根据需要,更改提示词

如果信息太多,大家也可以根据需求,一个功能一个功能的问,笔者这里就不多演示了。

2、生成好的代码框架怎么放到我的项目?

(1)数据库设计

 笔者使用的是mysql,Navicat Premium 17,这里版本无所谓,大家有能用的直接用。

首先复制上这个到navicat里,右键查询,选择新建查询

复制进去,点击运行

成功后是

此时刷新数据库就会出现新建好的数据表了

(2)添加pom依赖

这是新建好的部分,我们要添加或删除的都是一对dependecies里的

复制进去后,点击右上角的刷新按钮,等待片刻下载完毕就导入成功了

需要注意的是mysql这里需要手动设置版本号<version>

(3)设置Mysql的配置文件

这是新建好的

这是粘贴进去的,这里的username和password记得改成自己数据库的

(4)创建用户实体类

没有classmatebook 可以右键new pockage新建一个

,也可以把它删掉变成

package com.example.model;

这里手动添加主要是为了方便后面用ai的代码时候,不用每次都删除。

然后把实体类代码粘贴到model上

 alt + 回车 可以导入爆红的包  Table

这个爆红是因为,javax在java17是改名了,叫做jakarta,都成下面的就好了


 

(5)创建mapper类

这里创建mapper是因为下面是.mapper,classmatebook下是mapper

package com.example.classmatebook.mapper;

复制下面代码

选中mapper文件夹 ctrl+v就能一键放进去

(6)创建service和(5)的手法一样

这时出现这个报错

我们可以先看看AI后面有没有给bCryptPasswordEncoder方法

我发现没有,那现在就搜索这个方法需要什么依赖

我们只需要先把这个复制放到pom里看看还爆红不,这里用的是ctrl+f,把代码粘进去看看有没有

然后粘贴进去右上角那个M圆圈刷新maven

回来发现还是爆红

此时我们考虑ai的其他方法

进行ai操作后,发现刚刚的好了,但是getUsername还是爆红,这个是实体类中没有getUsername导致的

我们来到user右键选择Generate

选择getter and setter  

全选点ok

就会自动生成下面的

此时这次的爆红我们就完美解决了

(7)创建controller层

粘贴进去controller包后,会出现一个爆红,我们alt+回车导包 improt就可以解决这次爆红了

(8)创建跨域类

下面开始就是经典ai辅助开发编程法

此时出现一个爆红,这个爆红可以直接复制,问ai,这个在springboot3中爆红,怎么办

@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf().disable() .authorizeRequests() .antMatchers("/api/auth/**").permitAll()这个在springboot3中会爆红,怎么办

粘贴后还是有bug

继续给ai

复制蓝色背景的继续问,知道没有爆红为止

这里大家根据自己的需求改

完成

上面就是经典的ai编程办法

到这里后端开发就结束了,这只是简洁入门版,要深入学习还是需要了解mybaitis的sql语句该怎么写,不然微调的时候,ai很容易听不懂话

3、现在开始测试接口

我们可以拿着ai给的测试接口,直接让它生成个前端页面

前端笔者是用的visual code 直接复制ai给的代码,创建个新的html文件,粘贴进去

笔者选中的是后台接口

后台接口的由来

后台接口由controller层组成

想调用login时就是

/api/auth/login

然后,最悲催的来了,最后一步,后台代码崩了,大家一定要没放完一个文件内容就运行一下

现在,经典问ai

这个报错是因为,main函数它找不到mapper在哪,下面这行代码可以这样解读:com文件里的example 里的classmatebook  里的 mapper,大家可以根据自己的进行自定义,只要能锁定到你的mapper就行

@MapperScan("com.example.classmatebook.mapper")

找了半天这个可能是pom文件不对导致的,但是笔者学艺不精,还望各位网友评论区讲解一下我是直接拿我以前能跑的pom用了,如果有需要我的pom文件可以评论区留言或私信。

这里我们测试接口时,直接在vscode 点击html页面界面右键选择open with live server 就可以浏览器预览了。

按f12 再点击注册,此时是报错的

405报错,一看后端,端口占用了

以管理员身份运行命令提示符,它又叫做cmd

netstat -ano | findstr 8080      

taskkill -pid 自己的进程号 -f

笔者的是10252 进程号它是会变的

然后重新在main函数这点绿色小三角启动

此时又来一个爆红,我们把前端代码,和报错信息一起给ai,让它解决一下

最终试了两个方法

1.接口前面加上域名

const url = isRegisterMode ? 'http://localhost:8080/api/auth/register' :'http://localhost:8080/api/auth/login';

2.后台重新做了跨域

package com.example.classmatebook.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import java.util.List;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .csrf(csrf -> csrf.disable()) // 禁用CSRF保护(如果你的应用不需要)
                .cors(cors -> cors.configurationSource(corsConfigurationSource())) // 配置CORS
                .authorizeHttpRequests(authorize -> authorize
                        .requestMatchers("/api/auth/register", "/api/auth/login").permitAll() // 允许注册和登录请求
                        .anyRequest().authenticated() // 其他请求需要认证
                );

        return http.build();
    }

    @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();

        // 只允许来自特定前端域名的请求
        config.setAllowedOrigins(List.of("http://127.0.0.1:5500")); // 替换为你的前端地址
        config.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "OPTIONS"));
        config.setAllowedHeaders(List.of("*"));
        config.setAllowCredentials(true);

        // 注册 CORS 配置到 /api/** 路径
        source.registerCorsConfiguration("/api/**", config);
        return source;
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

这样就是成功的

显示注册成功后,数据库也可以更新出来

这样一个简易的登录注册就写完了,友情提示,这只是编程的入门,想深入学习,需要明白每行代码它为什么写在这。喜欢记得关注一手哦!

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐