java - @Resource作用
大家讲道理
大家讲道理 2017-04-18 09:38:48
0
5
608
@Resource
public interface MyObjectMapperExt extends MyObjectMapper {

 // TODO 
}

为什么在这个地方不加@Resource的时候,在另外一个地方注入MyObjectMapperExt会失败?

@Autowired
private MyObjectMapperExt myObjectMapperExt;

会注入失败,提示无法注入。是什么原因?而且@Resource是mybatis自动生成的。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(5)
阿神
/**
 * The Resource annotation marks a resource that is needed
 * by the application.  This annotation may be applied to an
 * application component class, or to fields or methods of the
 * component class.  When the annotation is applied to a
 * field or method, the container will inject an instance
 * of the requested resource into the application component
 * when the component is initialized.  If the annotation is
 * applied to the component class, the annotation declares a
 * resource that the application will look up at runtime. <p>
 *
 * Even though this annotation is not marked Inherited, deployment
 * tools are required to examine all superclasses of any component
 * class to discover all uses of this annotation in all superclasses.
 * All such annotation instances specify resources that are needed
 * by the application component.  Note that this annotation may
 * appear on private fields and methods of superclasses; the container
 * is required to perform injection in these cases as well.
 *
 * @since Common Annotations 1.0
 */
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)

Ini ialah pengenalan kepada anotasi @Resource Apabila @Resource digunakan pada medan atau kaedah, Spring akan mencari jenis kacang yang diperlukan daripada bekas Apabila @Resource digunakan pada kelas, Spring akan Masukkan ke dalam bekas Spring sebagai sumber.

Anotasi

@Autowired bermaksud membiarkan bekas Spring secara automatik menyuntik kacang ini @Resource bermaksud menyerahkan kelas yang diberi anotasi kepada bekas Spring untuk pengurusan Jika anda tidak menggunakan anotasi @Resource, Spring bekas tidak akan memuatkan jenis kacang ini Apabila suntikan diperlukan, ralat secara semula jadi akan dilaporkan

Terdapat sesuatu yang salah dengan menggunakan @Resource pada antara muka Ia harus diletakkan pada kelas pelaksanaan

刘奇

Bersatu dan diserahkan kepada pengurusan musim bunga

左手右手慢动作

Jika antara muka pertama tidak menambah @Resource, pelaksanaan antara muka tidak akan diuruskan oleh musim bunga, jadi suntikan seterusnya yang merujuk antara muka akan gagal

伊谢尔伦

@Pengisytiharan anotasi sumber, anda tidak mengisytiharkan bahawa kacang tidak boleh ditemui menggunakan @Autowired
Ia boleh difahami dengan mudah dengan cara ini, kolam sumber yang dipanggil spring, anda perlu menggunakan @Resource @Controller dan kaedah lain untuk buat pengisytiharan dalam kumpulan. Hanya masukkannya
Gunakan @Autowired @Named dan kaedah lain untuk mengeluarkannya

Ty80

@Resource
bermaksud kacang diuruskan oleh bekas spring Secara amnya, sumber ditulis pada kelas pelaksanaan kelas atau antara muka, bukannya secara langsung pada antara muka. Biarkan bekas spring mengurus ini bermakna apabila anda ingin membuat instantiate kelas, spring secara automatik akan mencipta objek untuk anda.

@Autowired
menunjukkan bahawa atribut (biasanya ditulis pada atribut atau kaedah set) disuntik secara automatik oleh spring. Hanya jika sumber itu wujud dalam bekas spring (kacang dengan sumber ditambah dianggap sebagai sumber), spring boleh menyuntiknya secara automatik untuk anda. Jika tiada sumber sedemikian dalam bekas spring, jika anda menyuntiknya secara automatik, anda pasti tidak akan dapat mencari sumber tersebut dan melaporkan ralat.

Contoh yang sesuai dan tidak sesuai
Terdapat daftar pakej (Spring container) di stesen kereta api, dan anda ingin menyimpan bungkusan anda di dalam bekas. Anda meletakkan teg @Resource pada pakej, dan kakitangan akan memberikan anda nota kecil yang menunjukkan bahawa sumber itu kepunyaan anda. Apabila anda ingin mendapatkan pakej (dapatkan sumber), anda boleh mengambil jalur (@Autowired) untuk mencari sumber dalam daftar pakej.
Jika beg anda memang disimpan di dalam bekas, maka beg tersebut akan diberikan kepada anda mengikut catatan anda.
Jika anda belum memasukkan beg ke dalam bekas dan masih mahu meminta kakitangan untuk beg, maka laporkan kesilapan. Anda memulakan pertarungan dengan kakitangan. . . . . . . . . . . . . .
Spring sangat tegak Jika anda memilikinya, saya akan memberikannya kepada anda Jika anda tidak memilikinya, anda tidak akan memilikinya, anda boleh memintanya lagi . Saya akan melaporkan kesilapan itu kepada anda! ! !
PS: Contoh yang diberikan mengelirukan, sila fahami sendiri.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan