τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Το @RequiredArgsConstructor υλοποιεί την ένεση κατασκευαστή
@Autowired
και@Resource
σχόλιο@Autowired
@Autowired
Είναι ένας σχολιασμός που παρέχεται από το πλαίσιο Spring και χρησιμοποιείται για την αυτόματη συγκέντρωση εξαρτήσεων.@Autowired
private ISysUserService userService;
@Resource
@Resource
Είναι ένας σχολιασμός που παρέχεται από την Java EE και το Spring το υποστηρίζει επίσης για αυτόματη συναρμολόγηση εξαρτήσεων.@Resource
private ISysUserService userService;
@RequiredArgsConstructor
@RequiredArgsConstructor
είναι ένας σχολιασμός που παρέχεται από τη Lombok, ο οποίος θα δημιουργήσει αυτόματα όλαfinal
Κατασκευαστής πεδίου.@RequiredArgsConstructor
@RestController
@RequestMapping("/system/user")
public class SysUserController extends BaseController {
private final ISysUserService userService;
private final ISysRoleService roleService;
private final ISysPostService postService;
private final ISysDeptService deptService;
private final ISysUserPostService userPostService;
// 构造函数由 Lombok 自动生成,注入所有 final 字段
}
@Autowired
και@Resource
)@RequiredArgsConstructor
Αυτό το βάρος μπορεί να ελαφρυνθεί.@Autowired
@RestController
@RequestMapping("/system/user")
public class SysUserController extends BaseController {
@Autowired
private ISysUserService userService;
@Autowired
private ISysRoleService roleService;
@Autowired
private ISysPostService postService;
@Autowired
private ISysDeptService deptService;
@Autowired
private ISysUserPostService userPostService;
// 其他代码
}
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/user")
public class SysUserController extends BaseController {
private final ISysUserService userService;
private final ISysRoleService roleService;
private final ISysPostService postService;
private final ISysDeptService deptService;
private final ISysUserPostService userPostService;
// 其他代码
}
Μέσω αυτής της μεθόδου έγχυσης κατασκευαστή, όχι μόνο μπορεί να βελτιωθεί η στιβαρότητα και η δυνατότητα συντήρησης του κώδικα, αλλά και τα χαρακτηριστικά έγχυσης εξάρτησης του Spring και τα πλεονεκτήματα του απλοποιημένου κώδικα του Lombok μπορούν να χρησιμοποιηθούν καλύτερα.
Ιστολόγιο Spring's Constructor Injection_spring Constructor Injection-CSDN
Όταν χρησιμοποιείτε την ένεση κατασκευαστή, δεν χρειάζεται να προσθέσετε πρόσθετους σχολιασμούς, χρειάζεται μόνο να παρέχετε τον κατασκευαστή. Το Spring θα εντοπίσει αυτόματα τον κατασκευαστή σας και θα πραγματοποιήσει ένεση εξάρτησης.
@RestController
@RequestMapping("/system/user")
public class SysUserController extends BaseController {
private final ISysUserService userService;
private final ISysRoleService roleService;
private final ISysPostService postService;
private final ISysDeptService deptService;
private final ISysUserPostService userPostService;
// 自己编写构造函数
public SysUserController(ISysUserService userService,
ISysRoleService roleService,
ISysPostService postService,
ISysDeptService deptService,
ISysUserPostService userPostService) {
this.userService = userService;
this.roleService = roleService;
this.postService = postService;
this.deptService = deptService;
this.userPostService = userPostService;
}
}
Δείγμα κώδικα
package com.example.demo.controller;
import com.example.demo.service.ISysUserService;
import com.example.demo.service.ISysRoleService;
import com.example.demo.service.ISysPostService;
import com.example.demo.service.ISysDeptService;
import com.example.demo.service.ISysUserPostService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/system/user")
public class SysUserController {
private final ISysUserService userService;
private final ISysRoleService roleService;
private final ISysPostService postService;
private final ISysDeptService deptService;
private final ISysUserPostService userPostService;
// 构造函数注入
public SysUserController(ISysUserService userService,
ISysRoleService roleService,
ISysPostService postService,
ISysDeptService deptService,
ISysUserPostService userPostService) {
this.userService = userService;
this.roleService = roleService;
this.postService = postService;
this.deptService = deptService;
this.userPostService = userPostService;
}
// 你的控制器方法
}
Σε αυτό το παράδειγμα, δεν χρειάζεται να χρησιμοποιήσετε πρόσθετους σχολιασμούς για τον σχολιασμό του κατασκευαστή, το Spring θα αναγνωρίσει και θα εισαγάγει αυτόματα την εξάρτηση. (Φυσικά, δεν θα αναφερθεί κανένα σφάλμα εάν επισημανθεί, αλλά μόνο το @Autowired μπορεί να χρησιμοποιηθεί και το @Resouce δεν μπορεί να χρησιμοποιηθεί.@Resource
Οι σχολιασμοί χρησιμοποιούνται συνήθως για την έγχυση μεθόδου πεδίου ή ρυθμιστή)
@Autowired
σχολιασμός για να προσδιορίσετε ρητά τον κατασκευαστή που θα χρησιμοποιηθεί.Δείγμα κώδικα (πολλαπλοί κατασκευαστές)
package com.example.demo.controller;
import com.example.demo.service.ISysUserService;
import com.example.demo.service.ISysRoleService;
import com.example.demo.service.ISysPostService;
import com.example.demo.service.ISysDeptService;
import com.example.demo.service.ISysUserPostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/system/user")
public class SysUserController {
private final ISysUserService userService;
private final ISysRoleService roleService;
private final ISysPostService postService;
private final ISysDeptService deptService;
private final ISysUserPostService userPostService;
// 使用 @Autowired 明确指定使用哪个构造函数
@Autowired
public SysUserController(ISysUserService userService,
ISysRoleService roleService,
ISysPostService postService,
ISysDeptService deptService,
ISysUserPostService userPostService) {
this.userService = userService;
this.roleService = roleService;
this.postService = postService;
this.deptService = deptService;
this.userPostService = userPostService;
}
// 另一个构造函数
public SysUserController(ISysUserService userService) {
this.userService = userService;
this.roleService = null;
this.postService = null;
this.deptService = null;
this.userPostService = null;
}
// 你的控制器方法
}
Σε αυτό το παράδειγμα, δεδομένου ότι υπάρχουν πολλοί κατασκευαστές, πρέπει να χρησιμοποιήσετε @Autowired
Σχολιασμοί για να προσδιορίσετε ρητά τον κατασκευαστή Spring που χρησιμοποιεί για την ένεση εξάρτησης.