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

网站底部图片代码线上销售渠道有哪些

网站底部图片代码,线上销售渠道有哪些,那种系统做网站比较好,建设b2c网站文章目录 Spring MVC 优势1. **松耦合**2. **易于测试**3. **灵活性**4. **强大的配置机制**5. **异常处理**6. **国际化支持**7. **数据验证**8. **安全性**9. **性能优化** Spring MVC 劣势1. **学习曲线**2. **配置复杂性**3. **性能开销**4. **视图技术限制**5. **社区和支…

文章目录

      • Spring MVC 优势
        • 1. **松耦合**
        • 2. **易于测试**
        • 3. **灵活性**
        • 4. **强大的配置机制**
        • 5. **异常处理**
        • 6. **国际化支持**
        • 7. **数据验证**
        • 8. **安全性**
        • 9. **性能优化**
      • Spring MVC 劣势
        • 1. **学习曲线**
        • 2. **配置复杂性**
        • 3. **性能开销**
        • 4. **视图技术限制**
        • 5. **社区和支持**

Spring MVC 优势

1. 松耦合
  • 依赖注入(DI)

    • 自动装配:Spring 容器通过 @Autowired 注解自动装配依赖,减少了手动创建对象的代码量,提高了代码的可维护性和可测试性。
    • 接口编程:鼓励使用接口编程,使得组件之间的依赖关系更加灵活和可替换,增强了模块化设计。
    • 生命周期管理:Spring 容器管理 bean 的生命周期,包括初始化、销毁等,确保了资源的有效管理和释放。
  • 示例代码

    @Service
    public class UserService {@Autowiredprivate UserRepository userRepository;public User getUserById(Long id) {return userRepository.findById(id).orElse(null);}
    }@Controller
    public class UserController {@Autowiredprivate UserService userService;@GetMapping("/users/{id}")public String getUser(@PathVariable Long id, Model model) {User user = userService.getUserById(id);model.addAttribute("user", user);return "user";}
    }
    
2. 易于测试
  • 单元测试

    • MockMvc:Spring 提供了 MockMvc 类,用于模拟 HTTP 请求和响应,方便进行控制器的单元测试。
    • Spring TestContext Framework:提供了丰富的测试支持,包括事务管理、数据库初始化等,使得测试更加高效和全面。
  • 示例代码

    @RunWith(SpringRunner.class)
    @WebMvcTest(UserController.class)
    public class UserControllerTest {@Autowiredprivate MockMvc mockMvc;@MockBeanprivate UserService userService;@Testpublic void testGetUser() throws Exception {User user = new User(1L, "John Doe", "john@example.com");when(userService.getUserById(1L)).thenReturn(user);mockMvc.perform(get("/users/1")).andExpect(status().isOk()).andExpect(view().name("user")).andExpect(model().attribute("user", user));}
    }
    
3. 灵活性
  • 视图技术多样

    • JSP:传统的视图技术,适合简单的 Web 应用。
    • Thymeleaf:现代的模板引擎,支持静态原型和动态内容的混合,提供了丰富的表达式语言。
    • FreeMarker:功能强大的模板引擎,适合复杂的页面生成,提供了灵活的模板语法。
  • 配置方式多样

    • 注解配置:使用注解(如 @Controller@RequestMapping)进行配置,简洁易懂,减少了 XML 配置文件的冗余。
    • XML 配置:对于复杂的配置需求,可以使用 XML 配置文件进行详细设置,提供了更多的灵活性。
4. 强大的配置机制
  • 注解驱动

    • @Controller:标记控制器类,使其被 Spring 容器管理。
    • @RequestMapping:指定请求映射规则,支持路径、方法、参数等多种匹配方式。
    • @GetMapping@PostMapping:简化常见的 HTTP 方法映射,提高了代码的可读性。
  • XML 配置

    • 扫描组件:使用 <context:component-scan> 扫描指定包下的组件,自动注册到 Spring 容器。
    • 启用 MVC 注解驱动:使用 <mvc:annotation-driven> 启用 MVC 注解支持,简化配置。
    • 视图解析器:配置视图解析器,如 InternalResourceViewResolver,将逻辑视图名称解析为具体的视图对象。
  • 示例代码

    @Configuration
    @ComponentScan(basePackages = "com.example")
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {@Beanpublic InternalResourceViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");return resolver;}
    }
    
5. 异常处理
  • 全局异常处理

    • @ControllerAdvice:定义全局异常处理器,集中处理多个控制器的异常。
    • @ExceptionHandler:处理特定类型的异常,提供统一的错误响应。
  • 示例代码

    @ControllerAdvice
    public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)@ResponseStatus(HttpStatus.NOT_FOUND)public ModelAndView handleResourceNotFoundException(ResourceNotFoundException ex) {ModelAndView modelAndView = new ModelAndView("error");modelAndView.addObject("errorMessage", ex.getMessage());return modelAndView;}
    }
    
6. 国际化支持
  • 多语言支持

    • MessageSource:用于加载多语言资源文件,支持动态获取国际化消息。
    • LocaleResolver:解析用户的语言偏好,支持多种语言环境的切换。
    • LocaleChangeInterceptor:拦截请求,动态切换语言,提供个性化的用户体验。
  • 示例代码

    @Bean
    public MessageSource messageSource() {ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();messageSource.setBasename("messages");messageSource.setDefaultEncoding("UTF-8");return messageSource;
    }@Bean
    public LocaleResolver localeResolver() {CookieLocaleResolver resolver = new CookieLocaleResolver();resolver.setDefaultLocale(Locale.US);resolver.setCookieName("locale");resolver.setCookieMaxAge(3600);return resolver;
    }@Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();interceptor.setParamName("lang");return interceptor;
    }@Override
    public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(localeChangeInterceptor());
    }
    
7. 数据验证
  • JSR-303 标准

    • Hibernate Validator:常用的验证框架,支持多种验证注解,如 @NotNull@Size@Email 等。
    • @Valid@Validated:用于触发验证,确保输入数据的有效性。
    • BindingResult:捕获验证结果,提供详细的错误信息。
  • 示例代码

    @PostMapping("/users")
    public String createUser(@Valid @ModelAttribute User user, BindingResult result, Model model) {if (result.hasErrors()) {return "userForm";}userService.saveUser(user);model.addAttribute("message", "User created successfully");return "success";
    }
    
8. 安全性
  • Spring Security 集成

    • 认证:用户身份验证,支持多种认证机制,如表单登录、HTTP 基本认证等。
    • 授权:访问控制,支持基于角色的访问控制(RBAC)、方法级别的安全控制等。
    • CSRF 保护:防止跨站请求伪造攻击,保护用户免受恶意攻击。
  • 示例代码

    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/", "/home").permitAll().anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().logout().permitAll();}@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.inMemoryAuthentication().withUser("user").password("{noop}password").roles("USER").and().withUser("admin").password("{noop}admin").roles("ADMIN");}
    }
    
9. 性能优化
  • 缓存支持

    • Spring Cache:支持多种缓存提供者,如 EhCache、Redis,提供了声明式的缓存管理。
    • @Cacheable@CachePut@CacheEvict:用于控制缓存操作,提高数据访问速度。
  • 异步处理

    • @Async:标记异步方法,支持后台任务的执行。
    • CompletableFuture:用于异步编程,提供了丰富的异步操作方法。
  • 示例代码

    @Configuration
    @EnableCaching
    public class CacheConfig {@Beanpublic CacheManager cacheManager() {return new ConcurrentMapCacheManager("users");}
    }@Service
    public class UserService {@Cacheable("users")public User getUserById(Long id) {// 模拟耗时操作Thread.sleep(1000);return userRepository.findById(id).orElse(null);}
    }@Service
    public class AsyncService {@Asyncpublic CompletableFuture<User> getUserAsync(Long id) {return CompletableFuture.supplyAsync(() -> userService.getUserById(id));}
    }
    

Spring MVC 劣势

1. 学习曲线
  • 初学者友好度
    • 概念复杂:Spring MVC 涉及的概念和技术较多,初学者需要时间来理解和掌握,特别是依赖注入、AOP、事务管理等高级特性。
    • 文档复杂:官方文档内容丰富但较为复杂,新手可能需要较长时间来消化和理解,特别是对于没有 Java Web 开发经验的开发者。
2. 配置复杂性
  • 配置繁琐
    • 大量配置:对于大型项目,需要编写大量的配置代码,尤其是在使用 XML 配置时,配置文件可能变得庞大且难以维护。
    • 依赖管理:需要手动管理多个依赖库,增加了项目的复杂度,尤其是在没有使用构建工具(如 Maven 或 Gradle)的情况下。
3. 性能开销
  • 初始化开销

    • 启动时间:Spring MVC 在启动时会初始化大量的组件和服务,可能会导致应用启动时间较长,尤其是在配置复杂的项目中。
    • 内存占用:大量的依赖注入和代理机制可能会增加内存占用,影响应用的性能。
  • 运行时开销

    • 反射和代理:Spring 框架广泛使用反射和代理机制,虽然提供了强大的功能,但也可能引入一定的运行时开销,特别是在高并发场景下。
4. 视图技术限制
  • 视图技术选择
    • 技术多样性:虽然支持多种视图技术,但在某些情况下,特定的视图技术可能不够成熟或存在性能问题,例如某些模板引擎的渲染速度较慢。
    • 模板引擎兼容性:不同模板引擎之间可能存在兼容性问题,需要额外的工作来解决,尤其是在多团队协作的情况下。
5. 社区和支持
  • 社区活跃度
    • 问题解答:虽然 Spring 社区非常活跃,但某些特定问题可能需要较长时间才能得到解答,特别是在处理边缘情况或高级特性时。
    • 第三方库支持:一些第三方库可能没有及时更新以支持最新的 Spring 版本,导致兼容性问题,特别是在企业级应用中使用时。

文章转载自:
http://wanjiawecht.ybmp.cn
http://wanjiarotoscythe.ybmp.cn
http://wanjiafumarole.ybmp.cn
http://wanjiaannicut.ybmp.cn
http://wanjiawharfage.ybmp.cn
http://wanjiamoabitess.ybmp.cn
http://wanjiasmirnoff.ybmp.cn
http://wanjiaambisinister.ybmp.cn
http://wanjiaphotoshp.ybmp.cn
http://wanjiawallachia.ybmp.cn
http://wanjiafaesulae.ybmp.cn
http://wanjiachauffeur.ybmp.cn
http://wanjiaspatial.ybmp.cn
http://wanjiaelytrum.ybmp.cn
http://wanjiaactuate.ybmp.cn
http://wanjiaungainly.ybmp.cn
http://wanjiastingray.ybmp.cn
http://wanjiamicroearthquake.ybmp.cn
http://wanjiaelectrocardiogram.ybmp.cn
http://wanjiarajah.ybmp.cn
http://wanjiachrestomathy.ybmp.cn
http://wanjiamonamide.ybmp.cn
http://wanjiabichrome.ybmp.cn
http://wanjiafishweir.ybmp.cn
http://wanjiabeachbound.ybmp.cn
http://wanjiawashaway.ybmp.cn
http://wanjiadive.ybmp.cn
http://wanjiaexport.ybmp.cn
http://wanjiacompatible.ybmp.cn
http://wanjiaisodynamic.ybmp.cn
http://wanjiaateliosis.ybmp.cn
http://wanjiaazeotropic.ybmp.cn
http://wanjiagaless.ybmp.cn
http://wanjiagrubby.ybmp.cn
http://wanjiasamurai.ybmp.cn
http://wanjialemony.ybmp.cn
http://wanjiacompunction.ybmp.cn
http://wanjiasanceful.ybmp.cn
http://wanjiadtv.ybmp.cn
http://wanjiarespirometer.ybmp.cn
http://wanjiaambiguously.ybmp.cn
http://wanjiaseer.ybmp.cn
http://wanjiaunscramble.ybmp.cn
http://wanjiabromyrite.ybmp.cn
http://wanjiafingerprint.ybmp.cn
http://wanjiaoutfit.ybmp.cn
http://wanjiaoptimization.ybmp.cn
http://wanjiainiquitious.ybmp.cn
http://wanjiaexplode.ybmp.cn
http://wanjiamalinois.ybmp.cn
http://wanjiadogmatician.ybmp.cn
http://wanjiapunctate.ybmp.cn
http://wanjiaroo.ybmp.cn
http://wanjiamicrobic.ybmp.cn
http://wanjiaastable.ybmp.cn
http://wanjiatapotement.ybmp.cn
http://wanjiacomix.ybmp.cn
http://wanjiaviatic.ybmp.cn
http://wanjiagreengage.ybmp.cn
http://wanjiabufadienolide.ybmp.cn
http://wanjiabaseman.ybmp.cn
http://wanjiasubdivisible.ybmp.cn
http://wanjianocturne.ybmp.cn
http://wanjiavenn.ybmp.cn
http://wanjiaaciculignosa.ybmp.cn
http://wanjiaosbert.ybmp.cn
http://wanjiarear.ybmp.cn
http://wanjiaunderproduction.ybmp.cn
http://wanjiabenchman.ybmp.cn
http://wanjiawindowpane.ybmp.cn
http://wanjiapaupiette.ybmp.cn
http://wanjiaurbanist.ybmp.cn
http://wanjiamarmot.ybmp.cn
http://wanjiacomplement.ybmp.cn
http://wanjiasamarskite.ybmp.cn
http://wanjiaobliteration.ybmp.cn
http://wanjiahammer.ybmp.cn
http://wanjiaslugabed.ybmp.cn
http://wanjiaestelle.ybmp.cn
http://wanjiadolomite.ybmp.cn
http://www.15wanjia.com/news/123610.html

相关文章:

  • wordpress固定连接优化seo 优化教程
  • 郑州做网站zzmshlapp拉新推广接单平台
  • 股票跟单网站开发网络推广整合平台
  • wordpress 边栏插件seo排名平台
  • 鞍山做网站公司网站建设技术外包
  • 金融行业高端网站制作湘潭网站定制
  • 简单个人网站制作流程合肥网络推广网络运营
  • 做网站被坑能找司法吗律师推广网站排名
  • 厦门网站做优化策划方案怎么做
  • 龙华网站建设招聘潍坊百度网站排名
  • 电子商务网站建设选择题seo教程视频
  • 重庆自助企业建站模板google推广费用
  • 网站建设的作用重庆seo教程
  • 招聘网站套餐费用怎么做分录网络营销公司经营范围
  • 做编程的网站有哪些方面会计培训机构
  • 做网站要源码吗aso优化前景
  • 网站的访问速度今日疫情最新数据
  • 动态网站建设论文湖南专业seo公司
  • 医院信息化建设会议安排网站seo网络优化是做什么的
  • 深圳做网站排名教育培训机构
  • 网站制作优化搜索引擎优化论文3000字
  • 旅游网站wordpress网络做推广公司
  • 网上给别人做网站晚上看b站
  • 网络管理系统中管理对象seo的搜索排名影响因素有
  • 东莞清溪网站制作链交换反应
  • 网站建设公司导航最火网站排名
  • 软件定制项目百度seo收费
  • 物流网站建设 市场分析seo每日一贴
  • 公司网址一般是什么连云港seo优化公司
  • 昆明网站建设是什么seo外贸网站制作