本篇內容介紹了“Spring與JSR330中Solon Ioc注解對比分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創(chuàng)新互聯(lián)公司主營東山網站建設的網絡公司,主營網站建設方案,app開發(fā)定制,東山h5重慶小程序開發(fā)搭建,東山網站營銷推廣歡迎東山等地區(qū)企業(yè)咨詢
Solon 1.0.10 | Spring | JSR 330 | |
---|---|---|---|
@XInject * | @Autowired | @Inject | 注入Bean(by type) |
@XInject("name") | @Qualifier+@Autowired | @Qualifier+@Inject | 注入Bean(by name) |
@XInject("${name}") | @Value("${name}") | - | 注入配置 |
@XBean * | @Component | @Named | 托管Bean |
@XSingleton | @Scope(“singleton”) | @Singleton | 單例(Solon 默認是單例) |
@XSingleton(false) | @Scope(“prototype”) | - | 非單例 |
@XEvent | - | - | 內部事件訂閱 |
@XInit * | @PostConstruct | - | 構造完成并注入后的初始化 |
@XConfiguration | @Configuration | - | 配置類 |
@XController | @Controller,@RestController | - | 控制器類 |
@XMapping | @RequestMapping,@GetMapping... | - | 映射 |
Solon 的 @XInject 算是: Spring 的@Value、@Autowired、@Qualifier 三者的結合,但又不完全等價
Solon 托管的 Bean 初始化順序:new() - > @XInject - > @XInit -> Method@XBean
注1:Method@XBean,只執(zhí)行一次(只在 @XConfiguration 里有效)
注2:@XInject 的參數(shù)注入,只在Method@XBean時有效
Solon 強調有節(jié)制的注解使用,尤其對于增加處理鏈路的都會節(jié)制。
@XBean(Bean的托管:一種基于name,一種基于類型;且只記錄第一次的注冊)
@XBean public class UserService{ @Db("db1") //@Db為第三方擴展的注解 BaseMapper<User> mapper; UserModel getUser(long puid){ return db1.selectById(puid); } } /* @XBean("userService") public class UserService{ @Db("db1") BaseMapper<User> mapper; UserModel getUser(long puid){ return db1.selectById(puid); } } */
@XController
@XSingleton(false) //非單例注解 @XController public class UserController{ @XInject("${message.notnull}") String message; @XInject UserService userService @XMapping("/user/{puid}") public Object user(Long puid){ if(puid == null){ return message; } return userService.getUser(puid); } }
@XConfiguration
@XConfiguration public class Config { @XBean("db1") public DbContext db1(@XInject("${test.db1}") HikariDataSource dataSource) { String schema = XApp.cfg().get("test.db1.schema"); return new DbContext(schema, dataSource); } }
@XEvent (使用事件監(jiān)聽時,要確保有人發(fā)起事件)
//系統(tǒng)異常監(jiān)聽(這個系統(tǒng)會發(fā)的,還可以監(jiān)聽不同的異常) // @XEvent(Throwable.class) public class ThrowableListener implements XEventListener<Throwable> { WaterLogger log = new WaterLogger("rock_log"); @Override public void onEvent(Throwable err) { XContext ctx = XContext.current(); if (ctx != null) { String _in = ONode.stringify(ctx.paramMap()); log.error(ctx.path(), _in, err); } } } //Bean擴展監(jiān)聽(為Mybatis配置類,添加插件) // @XEvent(Configuration.class) @XConfiguration public class SqlHelperMybatisAutoConfiguration implements XEventListener<Configuration> { //... @Override public void onEvent(Configuration configuration) { SqlHelperMybatisPlugin plugin = new SqlHelperMybatisPlugin(); //... configuration.addInterceptor(plugin); } }
“Spring與JSR330中Solon Ioc注解對比分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網站,小編將為大家輸出更多高質量的實用文章!
網站題目:Spring與JSR330中SolonIoc注解對比分析
網頁路徑:http://jinyejixie.com/article2/pdccoc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站維護、響應式網站、App開發(fā)、微信小程序、網站導航、域名注冊
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)