当前位置: 首页 > news >正文

北京旅游型网站建设聊城建网站服务

北京旅游型网站建设,聊城建网站服务,湖北建设科技中心网站,企业培训系统appspring java配置大家好#xff0c;我很久没有写新文章了。 积累了很多资料#xff0c;需要在不久的将来在我的博客中发布。 但是现在我想谈谈Spring MVC应用程序配置。 确切地说#xff0c;我想谈谈基于Java的Spring配置。 尽管在3.0版本中引入了基于Spring java的配置我很久没有写新文章了。 积累了很多资料需要在不久的将来在我的博客中发布。 但是现在我想谈谈Spring MVC应用程序配置。 确切地说我想谈谈基于Java的Spring配置。 尽管在3.0版本中引入了基于Spring java的配置但是许多开发人员仍然使用基于XML的方法。 我个人使用基于注释的配置因为它们在管理开发和维护方面更加方便。 如果您已经阅读过我的博客那么您可能会注意到在所有代码示例中我都完全使用基于Java的配置。 不久前我对我的项目进行了代码审查。 我注意到配置的结构出了点问题。 对我来说有两个方面很糟糕 所有bean都配置在一个类中 Web应用程序上下文的初始化太复杂 您可以在我所有的Spring MVC应用程序示例中看到这两个缺点。 例如您可以打开我关于CNVR的Spring REST服务的最新教程之一 。 看一下两个类 WebAppConfig和Initializer 。 WebAppConfig 第一个代表本文的第一点。 绝对我需要做一些事情来逻辑上拆分bean配置。 为了解决此问题我决定执行两个步骤 将数据库配置移到单独的类中 Configuration EnableTransactionManagement EnableJpaRepositories(com.mobapp.repository) public class DataBaseConfig {private static final String PROPERTY_NAME_DATABASE_DRIVER db.driver;private static final String PROPERTY_NAME_DATABASE_PASSWORD db.password;private static final String PROPERTY_NAME_DATABASE_URL db.url;private static final String PROPERTY_NAME_DATABASE_USERNAME db.username;private static final String PROPERTY_NAME_HIBERNATE_DIALECT hibernate.dialect;private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL hibernate.show_sql;private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN entitymanager.packages.to.scan;Resourceprivate Environment env;Beanpublic DataSource dataSource() {DriverManagerDataSource dataSource new DriverManagerDataSource();dataSource.setDriverClassName(env.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));dataSource.setUrl(env.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));dataSource.setUsername(env.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));dataSource.setPassword(env.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));return dataSource;}Beanpublic LocalContainerEntityManagerFactoryBean entityManagerFactory() {LocalContainerEntityManagerFactoryBean entityManagerFactoryBean new LocalContainerEntityManagerFactoryBean();entityManagerFactoryBean.setDataSource(dataSource());entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistence.class);entityManagerFactoryBean.setPackagesToScan(env.getRequiredProperty(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN));entityManagerFactoryBean.setJpaProperties(hibProperties());return entityManagerFactoryBean;}private Properties hibProperties() {Properties properties new Properties();properties.put(PROPERTY_NAME_HIBERNATE_DIALECT, env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DIALECT));properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL));return properties; }Beanpublic JpaTransactionManager transactionManager() {JpaTransactionManager transactionManager new JpaTransactionManager();transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());return transactionManager;}} 在主配置类中转换WebAppConfig类并通过Import批注将其余的配置类在当前情况下仅为DataBaseConfig类分配给它。 Configuration EnableWebMvc Import({DataBaseConfig.class}) ComponentScan(com.mobapp) PropertySource(classpath:application.properties) public class WebAppConfig extends WebMvcConfigurerAdapter {Resourceprivate Environment env;Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/resources/**).addResourceLocations(/resources/);}Overridepublic void configureContentNegotiation(ContentNegotiationConfigurer configurer) {configurer.favorPathExtension(true).useJaf(false).ignoreAcceptHeader(true).mediaType(html, MediaType.TEXT_HTML).mediaType(json, MediaType.APPLICATION_JSON).defaultContentType(MediaType.TEXT_HTML);}Beanpublic ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager) {List ViewResolver resolvers new ArrayList ViewResolver ();InternalResourceViewResolver r1 new InternalResourceViewResolver();r1.setPrefix(/WEB-INF/pages/);r1.setSuffix(.jsp);r1.setViewClass(JstlView.class);resolvers.add(r1);JsonViewResolver r2 new JsonViewResolver();resolvers.add(r2);ContentNegotiatingViewResolver resolver new ContentNegotiatingViewResolver();resolver.setViewResolvers(resolvers);resolver.setContentNegotiationManager(manager);return resolver;}/*** View resolver for returning JSON in a view-based system. Always returns a* {link MappingJacksonJsonView}.*/public class JsonViewResolver implements ViewResolver {public View resolveViewName(String viewName, Locale locale)throws Exception {MappingJacksonJsonView view new MappingJacksonJsonView();view.setPrettyPrint(true);return view;}}} 这样您可以将单个大型配置类分为几个较小的类这些类将包含针对它们的特定配置。 初始化器 在上面提到的示例中 Initializer类的代码过于冗长并提供了指向其的链接。 我在那里注册了Web应用程序的根配置映射和过滤器。 如何减少代码行数 我在AbstractAnnotationConfigDispatcherServletInitializer类上找到了答案。 查看该类您会注意到它实现了WebApplicationInitializer接口我在上一版本的Initializer类中已实现了该接口。 所以这是Initializer的新版本 public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class ? [] getRootConfigClasses() {return null;}Overrideprotected Class ? [] getServletConfigClasses() {return new Class ? [] { WebAppConfig.class };}Overrideprotected String[] getServletMappings() {return new String[] { / };}Overrideprotected Filter[] getServletFilters() {return new Filter[] { new HiddenHttpMethodFilter() };}} 由于这两个步骤我使Spring MVC应用程序的配置更加优雅。 现在您也可以这样做。 祝好运 参考 Spring在Fruzenshtein的Notes博客上与我们的JCG合作伙伴 Alexey Zvolinskiy一起使基于Java的配置更加优雅 。 翻译自: https://www.javacodegeeks.com/2013/11/spring-make-your-java-based-configuration-more-elegant.htmlspring java配置
http://www.pierceye.com/news/891080/

相关文章:

  • 邢台网站改版开发长沙教育网站开发
  • 网站开发人员必备技能网站背景图片自动切换
  • 企业网站建立策划书有网站吗给一个
  • 外贸建站有哪些公司建设主管部门网站查询
  • 泰安市网站建设广州优化公司哪家好
  • 手机网游传奇西安关键词优化平台
  • 网站建设公司权威机构3d虚拟人物制作软件
  • 北京网站建设seo公司哪家好阿里巴巴企业邮箱登录入口
  • 广州shopify代建站新产品代理
  • html5网站特点在线搜索引擎
  • 网站搭建服务平台网站备案 关闭网站
  • 高端建站收费标准宣传设计网站
  • 视频网站数据库设计手机企业网站设计
  • 广安发展建设集团有限公司门户网站竞价推广代运营服务
  • 济南mip网站建设公司山西住房建设厅网站
  • 兰州需要做网站的公司有哪些做词云的网站
  • 红酒公司网站建设模板6841如何通过网站获取qq
  • 写一张营销型网站页面多长时间微动漫怎么制作
  • 网站架构设计师月薪多少柳州团购网站建设
  • 深圳宝安沙井网站建设网络营销推广主要做什么?有哪些方法和技巧?
  • 图书馆门户网站建设的意义开票 网站建设
  • 如何用家用电脑做网站wordpress的伪静态
  • 东营市城市和建设管理局网站网络基础知识点
  • 怎么制作网站链接转发视频网页游戏开服表怎么取消
  • 360网站seo怎么做北京商场关闭通知
  • 连云港建设公司网站工程承包信息
  • 互动网站制作建设医院网站服务
  • 用asp做网站span增城高端网站建设
  • 数据交易网站开发网站流量超
  • 做短视频网站用哪家cms湖州高端网站设计