自己网站的登录api怎么做网站有死链怎么办
2026/1/14 7:18:26 网站建设 项目流程
自己网站的登录api怎么做,网站有死链怎么办,电脑托管,做网站发违规内容 网警抓不抓大家好#xff0c;我是小悟。 一、参数配置#xff1a;程序员的“遥控器” SpringBoot应用就像一个超级智能的变形金刚#xff0c;而参数配置就是你手里的万能遥控器#xff01;你想让它变成温柔的Hello Kitty模式#xff1f;调参数#xff01;想让它变成狂暴的哥斯拉模式…大家好我是小悟。一、参数配置程序员的“遥控器”SpringBoot应用就像一个超级智能的变形金刚而参数配置就是你手里的万能遥控器你想让它变成温柔的Hello Kitty模式调参数想让它变成狂暴的哥斯拉模式还是调参数它就像你女朋友的脾气——全看你如何“配置”参数配置的三大门派application.properties- 保守派喜欢用点号分隔server.port8080 spring.datasource.urljdbc:mysql://localhost:3306/my_dbapplication.yml- 文艺派喜欢用缩进写诗server: port: 9090 spring: datasource: url: jdbc:mysql://localhost:3306/my_dbValue注解- 直男派直接注入不啰嗦Value(${my.secret.password}) private String password; // 默认值123456才怪二、详细配置步骤从“Hello World”到“Hello 宇宙”第1步基础配置 - 给你的应用穿条裤子# application.yml - 基础生存包 server: port: 8080 # 端口号建议别用80免得和隔壁老王冲突 servlet: context-path: /api # 上下文路径相当于给你的应用加个姓 spring: application: name: my-awesome-app # 应用名起得霸气点准没错 # 数据库配置 - 应用的“肠胃系统” datasource: url: jdbc:mysql://localhost:3306/my_db?useSSLfalseserverTimezoneUTC username: root password: IForgetItAgain # 建议别写这里用环境变量 driver-class-name: com.mysql.cj.jdbc.Driver hikari: maximum-pool-size: 20 # 连接池大小人多好办事 minimum-idle: 5 # 最少闲着的连接不能太懒 connection-timeout: 30000 # 连接超时30秒还连不上就放弃吧第2步高级配置 - 给你的应用装上“涡轮增压”# 继续在application.yml中添加 spring: # JPA配置 - 对象和数据库的“翻译官” jpa: show-sql: true # 显示SQL方便偷看它在背后说什么 hibernate: ddl-auto: update # 自动更新表结构危险但方便 properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect # Redis配置 - 应用的“短期记忆” redis: host: localhost port: 6379 timeout: 3000ms # 超时时间3秒还想不明白就算了 lettuce: pool: max-active: 8 # 最大活跃连接别太多会打架 # 文件上传配置 - 胃口大小设置 servlet: multipart: max-file-size: 10MB # 单个文件最大别上传整个电影 max-request-size: 100MB # 总请求大小 # 自定义配置 - 你的专属“秘密武器” myapp: config: max-retry-count: 3 # 重试次数事不过三 enable-feature-x: true # 要不要开启某个神秘功能 api-key: ${API_KEY:default-key} # 优先用环境变量没有就用默认值第3步Profile配置 - 应用的多重人格创建不同环境的配置文件让你的应用学会“变脸”application.yml # 公共配置大家都得遵守 application-dev.yml # 开发环境 - 随便折腾版 application-test.yml # 测试环境 - 装模作样版 application-prod.yml # 生产环境 - 正经上班版application-dev.yml开发环境spring: datasource: url: jdbc:h2:mem:testdb # 内存数据库用完就扔 username: sa password: h2: console: enabled: true # 启用H2控制台可视化偷看数据 path: /h2-console logging: level: com.myapp: DEBUG # 详细日志方便甩锅时找证据 org.springframework.web: DEBUGapplication-prod.yml生产环境spring: datasource: url: jdbc:mysql://prod-db:3306/prod_db?useSSLtrue username: ${DB_USERNAME} # 从环境变量读取安全第一 password: ${DB_PASSWORD} logging: level: com.myapp: WARN # 生产环境日志别太多磁盘会哭 org.springframework: ERROR management: endpoints: web: exposure: include: health,info # 只暴露必要的监控端点第4步配置类 - 程序员最后的倔强import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; Component ConfigurationProperties(prefix myapp.config) Data // Lombok注解自动生成getter/setter public class MyAppConfig { /** * 最大重试次数 * 默认值防止有人不配置时系统直接崩溃 */ private int maxRetryCount 3; /** * 是否开启神秘功能X * 默认值false安全第一 */ private boolean enableFeatureX false; /** * API密钥 * 建议写在配置文件里不如写在环境变量里 * 写在环境变量里不如写在脑子里但容易忘 */ private String apiKey change-me; /** * 服务器列表 * 示例配置myapp.config.servers[0]http://server1 * myapp.config.servers[1]http://server2 */ private ListString servers new ArrayList(); /** * 连接超时时间 * 单位毫秒 * 哲学问题等待多久才算真爱 */ private Duration connectionTimeout Duration.ofSeconds(30); } // 使用配置类 Service public class MyService { Autowired private MyAppConfig config; public void doSomething() { if (config.isEnableFeatureX()) { System.out.println(神秘功能已开启但没人知道是啥功能); } for (int i 0; i config.getMaxRetryCount(); i) { try { // 尝试做事 break; } catch (Exception e) { System.out.println(第 (i1) 次失败还剩 (config.getMaxRetryCount() - i - 1) 次机会); } } } }第5步环境变量和命令行参数 - 终极武器# 运行时指定配置 java -jar myapp.jar --server.port9090 --spring.profiles.activeprod # 使用环境变量Linux/Mac export SPRING_DATASOURCE_PASSWORDSuperSecret123 export MYAPP_CONFIG_APIKEYMyAwesomeKey java -jar myapp.jar # 使用环境变量Windows PowerShell $env:SPRING_DATASOURCE_PASSWORDSuperSecret123 java -jar myapp.jar优先级总结从高到低命令行参数–开头环境变量SPRING_APPLICATION_JSONProfile特定配置文件application-{profile}.yml默认配置文件application.ymlConfigurationProperties默认值三、配置验证 - 给你的配置上个保险import javax.validation.constraints.*; Component ConfigurationProperties(prefix myapp.config) Validated // 开启验证 Data public class ValidatedConfig { NotNull(message API密钥不能为空除非你想裸奔) Size(min 10, max 100, message API密钥长度要在10-100之间) private String apiKey; Min(value 1, message 重试次数至少1次放弃治疗不可取) Max(value 10, message 重试次数最多10次要学会放弃) private int maxRetryCount 3; Pattern(regexp ^(http|https)://.*, message URL必须以http或https开头) private String baseUrl; AssertTrue(message 如果开启功能X必须提供密钥) public boolean isFeatureXValid() { return !enableFeatureX || (apiKey ! null !apiKey.isEmpty()); } }四、动态刷新配置 - 不用重启的魔法# 添加Spring Cloud Config依赖后 spring: cloud: config: enabled: true config: import: optional:configserver:http://localhost:8888 # 配置中心地址 # 在需要刷新的类上添加 RefreshScope Component public class ConfigRefreshService { Value(${myapp.config.feature-toggle}) private String featureToggle; // 配置更新后这个值会自动刷新 }五、配置加密 - 让密码不再裸奔# 使用jasypt加密敏感信息 spring: datasource: password: ENC(加密后的字符串) # 看起来像乱码就对了 # 启动时提供加密密钥 java -jar myapp.jar --jasypt.encryptor.passwordmy-secret-key总结配置之道存乎一心SpringBoot的配置系统就像是一套精密的乐高积木既有现成的标准件自动配置也允许你自由发挥自定义配置。掌握配置的艺术需要记住几个核心原则配置的“三大纪律八项注意”安全第一密码、密钥永远不要硬编码用环境变量或配置中心环境隔离开发、测试、生产配置严格分开别在开发环境玩生产数据适度原则不要过度配置SpringBoot的自动配置已经帮你做了80%的工作配置的“哲学思考”YAML vs PropertiesYAML就像写诗Properties就像写清单看你喜欢文艺还是务实配置优先级记住命令行参数 环境变量 配置文件这是权力的游戏默认值的重要性给配置项设置合理的默认值就像给程序买保险最后记住最好的配置是不需要配置但这是理想状态。SpringBoot的“约定优于配置”理念意味着只要你遵守约定它就会默默为你做好一切。但当你有特殊需求时这套强大的配置系统又能给你充分的自由。现在拿起你的配置“遥控器”去打造一个既听话又能干的SpringBoot应用吧记住配置不是目的让应用更好地服务业务才是终极目标。祝你在配置的海洋里乘风破浪但别淹死在配置文件中如果你发现自己在配置文件中写了一篇小说可能该考虑用配置中心了。谢谢你看我的文章既然看到这里了如果觉得不错随手点个赞、转发、在看三连吧感谢感谢。那我们下次再见。您的一键三连是我更新的最大动力谢谢山水有相逢来日皆可期谢谢阅读我们再会我手中的金箍棒上能通天下能探海

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询