Spring 經常使用的註解

Spring 經常使用的註解

前言

最近才體會到Spring註解配置的遍歷,總結一下。web

SpringMVC配置

@Configuration
@EnableWebMvc
@ComponentScan("cn.fjhdtp.maventest.controller")
public class SpringMvcConfig {
    @Bean
    public InternalResourceViewResolver internalResourceViewResolver() {
        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
        internalResourceViewResolver.setViewClass(JstlView.class);
        internalResourceViewResolver.setPrefix("/WEB-INF/views/");
        internalResourceViewResolver.setSuffix(".jsp");
        return internalResourceViewResolver;
    }
}

@Configuration代表這是一個配置類;@EnableWebMvc啓用SpringMVC。redis

web配置

public class WebInitializer implements WebApplicationInitializer{
    public void onStartup(javax.servlet.ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(SpringMvcConfig.class);
        ctx.setServletContext(servletContext);
        ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
        servlet.addMapping("/");
        servlet.setLoadOnStartup(1);
    }
}

實現__WebApplicationInitializer__的類的__onStartup__方法會在Spring啓動以後被執行,而且這個優先級在listener以前。能夠用@Order(100)註解來配置執行的順序,沒有這個註解則表明是最早執行。spring

@ComponentScan

相似<context:component-scan />mvc

@ComponentScan(value = "cn.fjhdtp.maventest", excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ANNOTATION, value = {Configuration.class, Controller.class}),
})

@PropertySource

@Configuration結合使用,讀取properties文件app

@PropertySources

@PropertySources({
        @PropertySource(value = "classpath:jedis.properties")
})

@Value

@PropertySource或者<context:property-placeholder/>結合使用,注入屬性值。jsp

@Value("${redis.hostName:127.0.0.1}")
private String hostName; // 主機名
@Value("${redis.port:6379}")
private int port; // 監聽端口
@Value("${redis.auth:}")
private String password; // 密碼
@Value("${redis.timeout:2000}")
private int timeout; // 客戶端鏈接時的超時時間(單位爲秒)

@Controller

@Controller代表這個類是一個controller,和@RequestMapping結合來配置映射的路徑。maven

@Component

@Component代表這是一個Bean,可是若是知道屬於那一層最好仍是用@Service或者@Repositoryspa

@Service

用在Service層。code

@Repository

用在Dao層。

相關文章
相關標籤/搜索