国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring零配置文件項目搭建

atinosun / 1421人閱讀

摘要:使用注解的類相當于傳統(tǒng)配置文件中的,該類中的方法可以通過標注成為。使用用來標明要掃描注解的包,相當于配置文件中的,會自動掃描注冊指定包中使用注解指定的。使用注解可以引入配置文件,通過注入對象可以很方便的拿到配置文件中的內(nèi)容。

本文主要記錄Spring零配置的方法,包括相關(guān)類以及注解的使用方法。

Servlet配置

傳統(tǒng)的servlet都是在web.xml中配置,從Servlet 3.0開始提供了ServletContainerInitializer接口,允許使用代碼去配置servletsfilters、listeners。

Spring為我們提供了一個該接口的實現(xiàn)類SpringServletContainerInitializer,查看源代碼可以知道該類通過@HandlesTypes()注解指定了onStartup()方法的第一個參數(shù)接收WebApplicationInitializer實現(xiàn)類的集合。所以如果我們要使用這種方式配置servlet,只需要實現(xiàn)WebApplicationInitializer接口即可。

具體實現(xiàn)代碼:

public class WebInitializer implements WebApplicationInitializer {

    private static final Logger logger = LoggerFactory.getLogger(WebInitializer.class);

    @Override
    public void onStartup(javax.servlet.ServletContext servletContext) throws ServletException {
        logger.info("begin init web application.");

        //配置Spring
        AnnotationConfigWebApplicationContext springContext = new AnnotationConfigWebApplicationContext();
        springContext.register(SpringConfig.class);
        
        //添加linstener
        servletContext.addListener(new ContextLoaderListener(springContext));

        //添加servlet
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
                "dispatcher", new DispatcherServlet(springContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");

        //添加filter
        LoggerFilter loggerFilter = new LoggerFilter();
        FilterRegistration.Dynamic logFilterRegistration=container.addFilter("requestResponseLogFilter", loggerFilter);
        logFilterRegistration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC), false, "/*");

        logger.info("init web application success.");
    }
}
Spring配置

Spring的配置主要就是配置各種Bean,主要是要了解幾種注解的使用方法。

@Configuration

使用@Configuration注解的類相當于傳統(tǒng)配置文件中的Beans,該類中的方法可以通過@Bean標注成為Bean。

@Configuration
public class SpringConfig {
    @Bean(name = "exampleBean")
    public ExampleBean getExampleBean() {
        return new ExampleBean();
    }
}
@ComponentScan

使用@ComponentScan用來標明要掃描注解的包,相當于配置文件中的context:component-scan,Spring會自動掃描注冊指定包中使用注解指定的Bean。

@ComponentScan(basePackages = {"com.example.service","com.example.dao"})
@PropertySource

使用@PropertySource注解可以引入properties配置文件,通過注入Environment對象可以很方便的拿到配置文件中的內(nèi)容。

@Configuration
@PropertySource("classpath:config.properties")
@ComponentScan(basePackages = {"com.example.service","com.example.dao"})
public class SpringConfig {

    @Autowired
    private Environment env;

    @Bean(name = "mysqlDataSource")
    public DataSource mysqlDataSource() {
        ProxoolDataSource dataSource = new ProxoolDataSource();
        dataSource.setDriver(env.getProperty("ds.driver.classname"));
        dataSource.setDriverUrl(env.getProperty("ds.url"));
        dataSource.setUser(env.getProperty("ds.username"));
        dataSource.setPassword(env.getProperty("ds.password"));
        dataSource.setPrototypeCount(env.getProperty("proxool.prototype", Integer.class));
        dataSource.setMinimumConnectionCount(env.getProperty("proxool.minimum", Integer.class));
        dataSource.setMaximumConnectionCount(env.getProperty("proxool.maximum", Integer.class));
        dataSource.setSimultaneousBuildThrottle(env.getProperty("proxool.simultaneous", Integer.class));
        dataSource.setTestBeforeUse(true);
        dataSource.setHouseKeepingTestSql(env.getProperty("proxool.testSql"));
        return dataSource;
    }

}

config.properties文件內(nèi)容:

ds.driver.classname=com.mysql.jdbc.Driver
ds.url=jdbc:mysql://...
ds.username=...
ds.password=...
...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66272.html

相關(guān)文章

  • Java后端

    摘要:,面向切面編程,中最主要的是用于事務(wù)方面的使用。目標達成后還會有去構(gòu)建微服務(wù),希望大家多多支持。原文地址手把手教程優(yōu)雅的應(yīng)用四手把手實現(xiàn)后端搭建第四期 SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Spring 兩大核心之 AOP 學習 | 掘金技術(shù)征文 原本地址:SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 評論0 收藏0
  • SpringBoot2.x【一】從開始環(huán)境搭建

    摘要:一從零開始環(huán)境搭建對于之前的框架的使用,各種配置文件一旦出錯之后錯誤難尋,這也是為什么被推上主流的原因,的配置簡單,說分鐘能從框架的搭建到運行也不為過現(xiàn)在更是微服務(wù)當?shù)?,所以在此總結(jié)下的一些知識,新手教程是一個基于和概念的項目自動化構(gòu)建開源 SpringBoot2.x【一】從零開始環(huán)境搭建 對于之前的Spring框架的使用,各種配置文件XML、properties一旦出錯之后錯誤難尋,...

    whjin 評論0 收藏0
  • Java3y文章目錄導航

    摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...

    KevinYan 評論0 收藏0
  • 開始搭建SSM框架(Spring + Spring MVC + Mybatis)

    摘要:打開,,選中,然后再選中,輸入項目的和,指定等配置,修改,打開項目,添加一些必要的目錄,最終項目框架目錄圖如下修改文件,指定各依賴和插件的版本等信息在標簽里面管理各依賴的版本號添加項目依賴管理依賴配置好之后,開始整合。 最近在回顧和總結(jié)一些技術(shù),想到了把之前比較火的 SSM 框架重新搭建出來,作為一個小結(jié),同時也希望本文章寫出來能對大家有一些幫助和啟發(fā),因本人水平有限,難免可能會有一些...

    MiracleWong 評論0 收藏0
  • 【Java EE】從開始寫項目【總結(jié)】

    摘要:目前該功能并未完善,敬請期待。反正每次都會有新的東西補充上去一開始我本來想做的是可以使用微信登陸,也可以使用賬戶郵箱登陸,也可以使用短信登陸的。后來發(fā)現(xiàn)微信登陸要企業(yè)認證,做不了。 從零開發(fā)項目概述 最近這一直在復習數(shù)據(jù)結(jié)構(gòu)和算法,也就是前面發(fā)出去的排序算法八大基礎(chǔ)排序總結(jié),Java實現(xiàn)單向鏈表,棧和隊列就是這么簡單,十道簡單算法題等等... 被虐得不要不要的,即使是非常簡單有時候繞半...

    imtianx 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<