{"id":1644,"date":"2025-08-28T17:04:51","date_gmt":"2025-08-28T09:04:51","guid":{"rendered":"https:\/\/zero-zl.cn\/?p=1644"},"modified":"2025-08-28T17:09:57","modified_gmt":"2025-08-28T09:09:57","slug":"spring%e6%b3%a8%e8%a7%a3%ef%bc%88%e8%b6%85%e7%ba%a7%e5%b0%8f%e7%99%bd%ef%bc%89","status":"publish","type":"post","link":"https:\/\/zero-zl.cn\/index.php\/2025\/08\/28\/spring%e6%b3%a8%e8%a7%a3%ef%bc%88%e8%b6%85%e7%ba%a7%e5%b0%8f%e7%99%bd%ef%bc%89\/","title":{"rendered":"Spring Boot \u6ce8\u89e3\u5b8c\u6574\u624b\u518c\uff08\u8d85\u8d85\u8d85\u8d85\u8d85\u7ea7\u5c0f\u767d\u7248\uff09"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u7ed3\u6784\uff1a<br>\u2460 \u542f\u52a8\u7c7b &amp; \u914d\u7f6e\u76f8\u5173<br>\u2461 Bean \u7ba1\u7406 &amp; \u4f9d\u8d56\u6ce8\u5165<br>\u2462 Web \u5c42\uff08Controller \u8bf7\u6c42\u76f8\u5173\uff09<br>\u2463 Service &amp; DAO \u5c42<br>\u2464 \u6570\u636e\u5e93 &amp; \u4e8b\u52a1<br>\u2465 \u914d\u7f6e\u6587\u4ef6 &amp; \u5e38\u7528\u5de5\u5177<br>\u2466 Lombok \u8f85\u52a9\u6ce8\u89e3<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"header-id-2\">\u2460 \u542f\u52a8\u7c7b &amp; \u914d\u7f6e\u76f8\u5173<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-3\">1.&nbsp;<code>@SpringBootApplication<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u5927\u95e8\u53e3\u7684 \u201c\u603b\u5f00\u5173\u201d\uff0c\u544a\u8bc9 Spring Boot \u4ece\u8fd9\u91cc\u542f\u52a8\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u6807\u8bb0\u542f\u52a8\u7c7b\uff0c\u542f\u52a8\u65f6\u4f1a\uff1a\n<ul class=\"wp-block-list\">\n<li>\u628a\u5f53\u524d\u7c7b\u4f5c\u4e3a\u914d\u7f6e\u7c7b\uff08<code>@Configuration<\/code>\uff09\u3002<\/li>\n\n\n\n<li>\u5f00\u542f\u81ea\u52a8\u914d\u7f6e\uff08<code>@EnableAutoConfiguration<\/code>\uff09\u3002<\/li>\n\n\n\n<li>\u81ea\u52a8\u626b\u63cf\u540c\u5305\u4e0b\u7684 Bean\uff08<code>@ComponentScan<\/code>\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"hDzWdODQHFrxwaAGYPvLgPx8l9Q0BlnC\" class=\"wp-block-code\"><code> <\/code><\/pre>\n\n\n\n<pre id=\"iKwajMjWL5ApNxgH1Y9FASvMuvCYv1Sn\" class=\"wp-block-code\"><code>@SpringBootApplicationpublic class DemoApplication {    public static void main(String&#91;] args) {        SpringApplication.run(DemoApplication.class, args);    }}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-4\">2.&nbsp;<code>@Configuration<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4eba\u4e8b\u90e8\u6587\u4ef6\u5939\uff0c\u91cc\u9762\u5199\u7740 \u201c\u516c\u53f8\u8981\u62db\u8058\u4ec0\u4e48\u5458\u5de5\u201d\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u5b9a\u4e49\u914d\u7f6e\u7c7b\uff0c\u53ef\u4ee5\u5199&nbsp;<code>@Bean<\/code>&nbsp;\u65b9\u6cd5\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"xstHVYMtK26OMGHqdX5WFWZrbjqbL027\" class=\"wp-block-code\"><code>@Configurationpublic class AppConfig {    @Bean    public PasswordEncoder passwordEncoder() {        return new BCryptPasswordEncoder();    }}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-5\">3.&nbsp;<code>@Bean<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u62db\u8058\u542f\u4e8b \u2192 \u62db\u4e00\u4e2a\u5bf9\u8c61\u4ea4\u7ed9 Spring \u7ba1\u7406\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u65b9\u6cd5\u8fd4\u56de\u503c\u4f1a\u4ea4\u7ed9 Spring \u5bb9\u5668\uff0c\u6210\u4e3a Bean\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"Fy0IJLhFETm0KEXCizyGxYc0dl9YuJvs\" class=\"wp-block-code\"><code>@Beanpublic Tool tool() {    return new Tool(\"\u87ba\u4e1d\u5200\");}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-6\">4.&nbsp;<code>@ComponentScan<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u626b\u5730\u673a\u5668\u4eba \u2192 \u81ea\u52a8\u626b\u63cf\u67d0\u4e2a\u5305\u4e0b\u7684\u5458\u5de5\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u544a\u8bc9 Spring \u53bb\u54ea\u91cc\u627e\u5e26\u6ce8\u89e3\u7684\u7c7b\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"rBvCplbxRbswKdQNicxgAHbskBkCXDUf\" class=\"wp-block-code\"><code>@SpringBootApplication(scanBasePackages = \"com.example.demo\")<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"header-id-7\">\u2461 Bean \u7ba1\u7406 &amp; \u4f9d\u8d56\u6ce8\u5165<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-8\">5.&nbsp;<code>@Component<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u7ed9\u4e00\u4e2a\u7c7b\u8d34\u5de5\u724c\uff0cSpring \u542f\u52a8\u65f6\u4f1a\u62db\u8fdb\u53bb\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u6700\u57fa\u672c\u7684 Bean \u6ce8\u89e3\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"bVEIJtlDKYQBRK6xU1vWN3x0rzRIdTiN\" class=\"wp-block-code\"><code>@Componentpublic class Tool {    public String getName() {        return \"\u6273\u624b\";    }}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-9\">6.&nbsp;<code>@Service<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u7ecf\u7406\uff0c\u8d1f\u8d23\u4e1a\u52a1\u903b\u8f91\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u4e1a\u52a1\u5c42\u7c7b\u3002\u5176\u5b9e\u5c31\u662f&nbsp;<code>@Component<\/code>&nbsp;\u7684\u53d8\u79cd\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"ZHIUEDFPKIeKP97AbfKfrD1yrltqSyEC\" class=\"wp-block-code\"><code>@Servicepublic class UserService {    public String getName() { return \"\u5c0f\u660e\"; }}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-10\">7.&nbsp;<code>@Repository<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4ed3\u5e93\u7ba1\u7406\u5458\uff0c\u8d1f\u8d23\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1aDAO \u5c42\u7c7b\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"0bV9hAK6S8OZAytVZEBtcdlsM42RCzHf\" class=\"wp-block-code\"><code>@Repositorypublic interface UserRepository extends JpaRepository&lt;User, Long&gt; {}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-11\">8.&nbsp;<code>@Controller<\/code>&nbsp;&amp;&nbsp;<code>@RestController<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u524d\u53f0\u63a5\u5f85\u5458\uff0c\u8d1f\u8d23\u63a5\u5f85\u5ba2\u6237\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li><code>@Controller<\/code>&nbsp;\u2192 \u8fd4\u56de\u9875\u9762\uff08HTML\uff09\u3002<\/li>\n\n\n\n<li><code>@RestController<\/code>&nbsp;\u2192 \u8fd4\u56de JSON\uff08\u5e38\u7528\u4e8e\u63a5\u53e3\u5f00\u53d1\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"0jUoChoOIIPk8H6BB5eTC1r470GBq03B\" class=\"wp-block-code\"><code>@RestController@RequestMapping(\"\/user\")public class UserController {    @GetMapping(\"\/{id}\")    public String getUser(@PathVariable int id) {        return \"\u7528\u6237ID\uff1a\" + id;    }}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-12\">9.&nbsp;<code>@Autowired<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u516c\u53f8\u91cc\u81ea\u52a8\u5206\u914d \u2192 \u4e0d\u7528\u81ea\u5df1&nbsp;<code>new<\/code>\u3002<\/li>\n\n\n\n<li><strong>\u4f5c\u7528<\/strong>\uff1a\u81ea\u52a8\u6ce8\u5165 Bean\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"n1gWmkFFIGsWnvHQZRwkmTVZ32VNXATQ\" class=\"wp-block-code\"><code>@Servicepublic class WorkService {    @Autowired    private Tool tool;     public void doWork() {        System.out.println(\"\u4f7f\u7528\u5de5\u5177\uff1a\" + tool.getName());    }}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-13\">10.&nbsp;<code>@Qualifier<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u5982\u679c\u6709\u4e24\u4e2a\u540c\u5c97\u4f4d\u7684\u4eba \u2192 \u6307\u5b9a\u8981\u54ea\u4e00\u4e2a\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"BJwycw7xm3p9RjenoSE0Cml0X79uj0Km\" class=\"wp-block-code\"><code>@Autowired@Qualifier(\"tool2\")private Tool tool;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-14\">11.&nbsp;<code>@Primary<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u9ed8\u8ba4\u4f18\u5148\u9009\u4e2d\u67d0\u4e2a\u5458\u5de5\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"0sWk5nFag7HNtM4YclVICqjfDreknn8N\" class=\"wp-block-code\"><code>@Component@Primarypublic class Tool1 implements Tool {}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"header-id-15\">\u2462 Web \u5c42\uff08\u8bf7\u6c42\u6620\u5c04\u76f8\u5173\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-16\">12.&nbsp;<code>@RequestMapping<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u524d\u53f0\u5c0f\u59d0\u59d0 \u2192 \u5b9a\u4e49\u63a5\u53e3\u5165\u53e3\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"HGjMJYpkfcBaMTXExGef0toKt6SqTOb3\" class=\"wp-block-code\"><code>@RequestMapping(\"\/hello\")public String hello() { return \"hi\"; }<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-17\">13.&nbsp;<code>@GetMapping<\/code>&nbsp;\/&nbsp;<code>@PostMapping<\/code>&nbsp;\/&nbsp;<code>@PutMapping<\/code>&nbsp;\/&nbsp;<code>@DeleteMapping<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4e0d\u540c\u7684\u95e8 \u2192 GET\/POST\/PUT\/DELETE \u8bf7\u6c42\u65b9\u5f0f\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"REMguXoydf0DYEPWwbVbHtrAreZ5LvAx\" class=\"wp-block-code\"><code>@GetMapping(\"\/{id}\")public String getUser(@PathVariable Long id) { ... } @PostMapping(\"\/add\")public String addUser(@RequestBody User user) { ... }<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-18\">14.&nbsp;<code>@PathVariable<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4ece URL \u8def\u5f84\u91cc\u53d6\u53c2\u6570\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n\n\n\n<li><code>\/user\/1<\/code>&nbsp;\u2192 id=1<\/li>\n<\/ul>\n\n\n\n<pre id=\"LXdv1LZrgTgXbA3QrTlUlq4daKKvRbDj\" class=\"wp-block-code\"><code>@GetMapping(\"\/user\/{id}\")public String getUser(@PathVariable int id) { ... }<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-19\">15.&nbsp;<code>@RequestParam<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4ece URL \u53c2\u6570\u91cc\u53d6\u6570\u636e\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<br><code>\/user\/search?name=\u5c0f\u660e<\/code><\/li>\n<\/ul>\n\n\n\n<pre id=\"ZAK9ZH9jRVsiXz9dPxqqpLVlpdgCiuOj\" class=\"wp-block-code\"><code>@GetMapping(\"\/search\")public String search(@RequestParam String name) { ... }<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-20\">16.&nbsp;<code>@RequestBody<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4ece\u8bf7\u6c42\u4f53\uff08JSON\uff09\u91cc\u53d6\u6570\u636e\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"h6aHXd3CBu63pvlPvh5jzfiy0F4cw2Mc\" class=\"wp-block-code\"><code>@PostMapping(\"\/add\")public String addUser(@RequestBody User user) { ... }<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"header-id-21\">\u2463 Service &amp; DAO \u5c42<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-22\">17.&nbsp;<code>@Transactional<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u94f6\u884c\u8f6c\u8d26 \u2192 \u8981\u4e48\u4e24\u8fb9\u90fd\u6210\u529f\uff0c\u8981\u4e48\u90fd\u5931\u8d25\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"3XIjNAz4DKvgmeUpjlvc0zQ88rfKrUF7\" class=\"wp-block-code\"><code>@Transactionalpublic void transfer(Long fromId, Long toId, double money) {    accountMapper.decrease(fromId, money);    accountMapper.increase(toId, money);}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-23\">18.&nbsp;<code>@Mapper<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u544a\u8bc9 MyBatis\uff1a\u8fd9\u662f SQL \u63a5\u53e3\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"YtVYXqbT2NKnCZJnQSD5J9DdQNbDSkuf\" class=\"wp-block-code\"><code>@Mapperpublic interface UserMapper {    @Select(\"SELECT * FROM user WHERE id = #{id}\")    User selectById(Long id);}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"header-id-24\">\u2464 \u914d\u7f6e\u6587\u4ef6\u76f8\u5173<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-25\">19.&nbsp;<code>@Value<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u70b9\u83dc\u5355 \u2192 \u4ece\u914d\u7f6e\u6587\u4ef6\u62ff\u6570\u636e\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<br>application.yml:&nbsp;<code>app: name: demo<\/code>&nbsp;\u4f7f\u7528\uff1a<\/li>\n<\/ul>\n\n\n\n<pre id=\"7mGFhopgFg6eMl1AVatad083ubji1RQ5\" class=\"wp-block-code\"><code>@Value(\"${app.name}\")private String appName;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-26\">20.&nbsp;<code>@ConfigurationProperties<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u4e00\u6574\u4e2a\u914d\u7f6e\u5957\u9910 \u2192 \u81ea\u52a8\u88c5\u914d\u6210\u5bf9\u8c61\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<br>application.yml:&nbsp;<code>app: name: demo version: 1.0<\/code><\/li>\n<\/ul>\n\n\n\n<pre id=\"oq0KDdfPzMbBXKbvelaqW8UoxkGvo8ue\" class=\"wp-block-code\"><code>@Component@ConfigurationProperties(prefix = \"app\")@Datapublic class AppConfig {    private String name;    private String version;}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"header-id-27\">\u2465 \u65e5\u5fd7 &amp; Lombok \u8f85\u52a9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-28\">21.&nbsp;<code>@Slf4j<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u81ea\u52a8\u7ed9\u4f60\u4e00\u4e2a\u5c0f\u672c\u5b50\uff0c\u53ef\u4ee5\u968f\u65f6\u5199\u65e5\u5fd7\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">@Slf4j<br>@RestController<br>public class TestController {<br>@GetMapping(\u201c\/log\u201d)<br>public String logTest() {<br>log.info (\u201c\u65e5\u5fd7\u6d4b\u8bd5\u6210\u529f\uff01\u201d);<br>return \u201cok\u201d;<br>}<br>}<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"header-id-29\">22.&nbsp;<code>@Data<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6bd4\u55bb<\/strong>\uff1a\u79d8\u4e66\u5e2e\u4f60\u5199 getter\/setter\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">@Data<br>@AllArgsConstructor<br>public class User {<br>private Long id;<br>private String name;<br>}<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"header-id-30\">\u603b\u7ed3\uff08\u63a8\u8350\u5b66\u4e60\u987a\u5e8f\uff09<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u542f\u52a8\u7c7b\u6ce8\u89e3<\/strong>\uff1a<code>@SpringBootApplication \/ @Configuration \/ @Bean<\/code><\/li>\n\n\n\n<li><strong>Bean \u7ba1\u7406<\/strong>\uff1a<code>@Component \/ @Service \/ @Repository \/ @Autowired \/ @Qualifier<\/code><\/li>\n\n\n\n<li><strong>Web \u5c42<\/strong>\uff1a<code>@RestController \/ @RequestMapping \/ @GetMapping \/ @PostMapping \/ @PathVariable \/ @RequestParam \/ @RequestBody<\/code><\/li>\n\n\n\n<li><strong>\u6570\u636e\u5e93 &amp; \u4e8b\u52a1<\/strong>\uff1a<code>@Repository \/ @Mapper \/ @Transactional<\/code><\/li>\n\n\n\n<li><strong>\u914d\u7f6e\u6587\u4ef6<\/strong>\uff1a<code>@Value \/ @ConfigurationProperties<\/code><\/li>\n\n\n\n<li><strong>\u5de5\u5177\u7c7b<\/strong>\uff1aLombok \u6ce8\u89e3\uff08<code>@Data \/ @Slf4j<\/code>\uff09<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u7ed3\u6784\uff1a\u2460 \u542f\u52a8\u7c7b &amp; \u914d\u7f6e\u76f8\u5173\u2461 Bean \u7ba1\u7406 &amp; \u4f9d\u8d56\u6ce8\u5165\u2462 Web \u5c42\uff08Controll [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1602,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108,107],"tags":[],"class_list":["post-1644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring","category-ssm"],"_links":{"self":[{"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/posts\/1644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1644"}],"version-history":[{"count":3,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/posts\/1644\/revisions"}],"predecessor-version":[{"id":1647,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/posts\/1644\/revisions\/1647"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/media\/1602"}],"wp:attachment":[{"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero-zl.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}