成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Spring與JSR330中SolonIoc注解對比分析

本篇內容介紹了“Spring與JSR330中Solon Ioc注解對比分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創(chuàng)新互聯(lián)公司主營東山網站建設的網絡公司,主營網站建設方案,app開發(fā)定制,東山h5重慶小程序開發(fā)搭建,東山網站營銷推廣歡迎東山等地區(qū)企業(yè)咨詢

注解對比

Solon 1.0.10SpringJSR 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)

h5響應式網站建設
怀化市| 佳木斯市| 岑巩县| 南郑县| 正阳县| 涡阳县| 库伦旗| 鸡东县| 彰化市| 望谟县| 湘潭县| 晋中市| 会泽县| 汾阳市| 博白县| 土默特右旗| 包头市| 治县。| 鲁甸县| 左云县| 正安县| 屏山县| 轮台县| 廊坊市| 诸城市| 广州市| 临澧县| 桃江县| 于都县| 沂源县| 杭州市| 普洱| 大宁县| 黔南| 梁河县| 剑川县| 苍梧县| 苏州市| 外汇| 玛多县| 化州市|