当前位置: 首页 > 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.zqtcl.cn/news/891080/

相关文章:

  • 做网站客户需求新乡专业做网站多少钱
  • 邢台建设银行官方网站二维码生成器app下载
  • 自己怎么做网站游戏做网站就是做app
  • 怎样做一元购网站wordpress+淘客代码
  • 网站建设发展现状贵阳有哪些做网站的公司
  • 微博上如何做网站推广蝉知和wordpress
  • 泷澄建设集团网站北京建设执业资格注册网站
  • 门户网站建设情况报告深圳龙岗房价多少钱一平方米
  • 网站建设备案是什么ps培训班
  • 深圳网站推广优化wordpress 运行速度慢
  • 谁能给个网站谢谢发布广东建设工程信息网站
  • 网站建设用户需求分析中国加盟网
  • 建设上线网站seo关键词优化软件排名
  • 郑州手工网站建设公司企业做网站好做吗
  • 苏华建设集团网站产品营销网站
  • 郑州专业做网站的网站收录最好的方法
  • 微信小程序网站建设哪家好视频教学网站开发
  • 个人网站排行网站集约化后如何建设
  • 企业网站维护wordpress特效代码
  • 建设银行网站短信错误6次wordpress新主题去版权
  • 国外 配色网站天猫店购买交易平台
  • 网站推广广告词大全集网站和网络建设自查报告
  • 电子商务网站建设备案须知自己做的网站服务器在哪里
  • 怎样用wordpress做网站wordpress 首页判断
  • jsp做的网站效果织梦网站程序模板
  • 展示型网站设计公司网盘wordpress
  • 网站建设 保密学服装设计后悔了
  • 网站建设前端和后端网站开发所遵循的
  • 有自己域名的个人网站企业网站建设制作公司
  • 工程行业网站优化网站推广排名