从零开始Springboot

新建 项目结构 模型 ➕ spring建立者 maven 打包方式Jar 找到web 勾选springweb
在项目结构 平台设置 SDKs添加自己下载的JDK
右键 创建子包
如果右键没有class还有package选项
则右键mark 字典 as 来源root

重载Maven
确保maven的能正常使用,配置正确
File -> Settings->Build, Execution, Deployment -> Build Tools -> Maven
D:/apache-maven-3.6.3
D:\apache-maven-3.6.3\conf\settings.xml
D:\apache-maven-3.6.3\repo

创建一个Controller的package还有class  创建好之后 写上@RestController

这个是路由的代码

package com.example.demo.Controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class helloController {
    @RequestMapping("/")
    public String hello(){
        return "hello world";

    }
}

application.properties 是 Spring Boot 项目中的一个配置文件,用于定义应用程序的配置参数。通过 application.properties,你可以轻松地配置各种属性,如数据库连接、服务器端口、日志级别、国际化设置

比如修改端口号server.port=9090
修改虚拟目录server.servlet.context-path=/A

如果变成了application.yml格式,可以配置信息,还能获取信息

假设你有一个名为 application.yml 的配置文件,内容如下:

server:
  port: 9090
  servlet:
    context-path: /myapp

app:
  name: MySpringApp
  version: 1.0.0
  database:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: secret

通过 @Value 注解获取配置

你可以使用 @Value 注解来直接从 application.yml 文件中获取配置值。例如:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AppConfig {

    @Value("${server.port}")
    private int serverPort;

    @Value("${app.name}")
    private String appName;

    @Value("${app.version}")
    private String appVersion;

    @Value("${app.database.url}")
    private String databaseUrl;

    @Value("${app.database.username}")
    private String databaseUsername;

    @Value("${app.database.password}")
    private String databasePassword;

    // Getters and setters or other methods to use these properties

    public void printConfig() {
        System.out.println("Server Port: " + serverPort);
        System.out.println("App Name: " + appName);
        System.out.println("App Version: " + appVersion);
        System.out.println("Database URL: " + databaseUrl);
        System.out.println("Database Username: " + databaseUsername);
        System.out.println("Database Password: " + databasePassword);
    }
}

通过 @ConfigurationProperties 注解获取配置

对于结构化配置,使用 @ConfigurationProperties 更为方便。这使你可以将配置映射到一个 Java 类中:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "app")
public class AppConfigProperties {

    private String name;
    private String version;
    private Database database;

    // Inner class for database properties
    public static class Database {
        private String url;
        private String username;
        private String password;

        // Getters and setters
        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public String getUsername() {
            return username;
        }

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

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }
    }

    // Getters and setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public Database getDatabase() {
        return database;
    }

    public void setDatabase(Database database) {
        this.database = database;
    }

    public void printConfig() {
        System.out.println("App Name: " + name);
        System.out.println("App Version: " + version);
        System.out.println("Database URL: " + database.getUrl());
        System.out.println("Database Username: " + database.getUsername());
        System.out.println("Database Password: " + database.getPassword());
    }
}

第二节:数据库配置

首先application.yml修改数据库的配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/shuju
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

第二就是添加mysql驱动依赖在porn.xml配置

还有Mappper的依赖包没有的话@Mapper报错

       <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
       </dependency>
       <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.3</version>
       </dependency>

第三步就是写controller service mapper框架了

结构:

helloControll.java

package com.example.demo.Controller;

import com.example.demo.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.service.UserService;

@RestController
public class helloController {

    @Autowired
    private UserService userService;
    @RequestMapping("/findById")
    public User findById(@RequestParam Integer id){
        return userService.findById(id);


    }
}

UserMapper.java

package com.example.demo.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import com.example.demo.pojo.User;

@Mapper
public interface UserMapper {
    @Select("select * from user where id = #{id}")
    public User findById(Integer id);



}

User.java

package com.example.demo.pojo;


public class User {
    private Integer id;
    private String name;
    private Integer age;

    // 默认构造函数
    public User() {
    }

    // 带参数的构造函数
    public User(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Getter 和 Setter 方法
    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

}

UserServiceImpl.java

package com.example.demo.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.service.UserService;
import com.example.demo.pojo.User;
import com.example.demo.mapper.UserMapper;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User findById(Integer id) {
        return userMapper.findById(id);
    }
}

UserService.java

package com.example.demo.service;
import com.example.demo.pojo.User;

public interface UserService {
    public User findById(Integer id);
}

DemoApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {

        SpringApplication.run(DemoApplication.class, args);
    }

}

第三节:Bean扫描

Bean扫描
如果Controller不在主包,而在上一层包,不用Bean就会报错
@ComponentScan(basePackages = "com.example")
就是在主程序里面加上这个,扫其他的包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0wioiw0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值