• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SSM架構(gòu)博客平臺設(shè)計(jì)與實(shí)現(xiàn)

      2018-11-01 03:04王先清
      電腦知識與技術(shù) 2018年19期
      關(guān)鍵詞:博客

      王先清

      摘要:隨著互聯(lián)網(wǎng)時代的不斷發(fā)展,人們溝通的工具除了即時通信工具外,各大論壇、博客技術(shù)也逐漸發(fā)展起來,實(shí)現(xiàn)多用戶之間的交互,不同用戶可以彼此訪問對方的博客、評論、留言等。博客成為另一個具有影響力的自由媒體。博客網(wǎng)站是當(dāng)今網(wǎng)絡(luò)的熱點(diǎn),個人博客技術(shù)的出現(xiàn)使得每個人可以零成本、零維護(hù)地創(chuàng)建自己的網(wǎng)絡(luò)媒體,Blog站點(diǎn)所形成的網(wǎng)狀結(jié)構(gòu)促成了不同于以往社區(qū)的Blog文化,Blog技術(shù)締造了“博客”文化。該平臺基于Spring MVC+Mybatis+Spring框架進(jìn)行項(xiàng)目搭建,采用JavaConfig+Maven及Mybatis實(shí)現(xiàn)一套高效,簡潔和實(shí)用的博客系統(tǒng)

      關(guān)鍵詞:JavaConfg;SpringMvc;Spring;Mybatis;博客

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)19-0107-03

      如果說博客網(wǎng)站是一個舞臺,那么所有的博客都是其中的舞者,把自己有價值的真實(shí)的一面展示在網(wǎng)絡(luò)世界中,相互交流溝通?;ヂ?lián)時代,博客現(xiàn)已成為大家交流的工具之一,在生活中每個技術(shù)人員都喜歡在相關(guān)的論壇發(fā)表帖子或評論,來表達(dá)技術(shù)上的一些創(chuàng)新思想與方法,但閱讀別人的技術(shù)與方法時是零散雜亂的。博客的出現(xiàn),讓技術(shù)人員在平時可以隨時把想法和每天技術(shù)研究上的一些創(chuàng)新思想與方法整理歸納到自己的博客上,讓每次閱讀時無形又能產(chǎn)生新的思維。雖然一些技術(shù)方法與思維方式暫時深度不夠,但在大量積累的過程中,自己會對某個小小的問題有了更多的思考,再整理成博客文章時會有一種收獲感,一種思想得以釋放、思考得以延伸的成就感。生活中督促自己努力,把一時的想法變成現(xiàn)實(shí),博客成就自己的每一天留下了一道淺淺的思考和劃痕?;赟SM架構(gòu)博客平臺打造一套高效,簡潔和實(shí)用的博客平臺采用基于Spring MVC+Mybatis+Spring框架進(jìn)行項(xiàng)目搭建,采用JavaConfig+Maven及Mybatis技術(shù)實(shí)現(xiàn)。

      1 平臺需求分析

      博客平臺是一個多用戶、多界面的系統(tǒng),主要包括以下三個大模塊組成,平臺總體結(jié)構(gòu)如圖1所示。

      1.1 公共、用戶模塊

      本模塊分為4個小模塊:文章模塊、圖片模塊、消息模塊、設(shè)置模塊

      1.2 后臺管理模塊

      本模塊分為9個小模塊組成:登錄及注銷模塊、網(wǎng)站統(tǒng)計(jì)模塊、網(wǎng)站設(shè)置模塊、邀請碼模塊、公告管理、通知管理、文章管理、會員管理、留言板管理。

      2 平臺設(shè)計(jì)

      按照需求功能要求,將系統(tǒng)分解為多個子系統(tǒng),根據(jù)每個子系統(tǒng)的功能不同,分別完成需求分析中的不同要求。

      2.1 數(shù)據(jù)庫功能分配設(shè)計(jì)

      2.2 相關(guān)接口邏輯

      架構(gòu)實(shí)現(xiàn)原理如圖2。

      1) Spring配置

      public class SpringConfig extends WebMvcConfigurerAdapter{

      @Bean

      public ViewResolver viewResolver(){

      InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();

      viewResolver.setViewClass(JstlView.class);

      viewResolver.setPrefix("/WEB-INF/views/");

      viewResolver.setSuffix(".jsp");

      return viewResolver;

      }

      @Bean

      public CommonsMultipartResolver multipartResolver() {

      CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();

      multipartResolver.setDefaultEncoding("utf-8");

      multipartResolver.setMaxUploadSize(2048 * 1024);

      multipartResolver.setMaxInMemorySize(2048);

      return multipartResolver;

      }

      @Override

      public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {

      configurer.enable();

      }

      }

      2) Mybatis 配置

      public class MyBatisConfig {

      @Autowired

      Environment env;

      public DataSource dataSource() {

      DriverManagerDataSource dataSource = new DriverManagerDataSource();

      dataSource.setDriverClassName(env.getProperty("sql.driver"));

      dataSource.setUrl(env.getProperty("sql.url"));

      dataSource.setUsername(env.getProperty("sql.user"));

      dataSource.setPassword(env.getProperty("sql.password"));

      return dataSource;

      }

      @Bean

      public DataSourceTransactionManager transactionManager(){

      return new DataSourceTransactionManager(dataSource());

      }

      @Bean

      public SqlSessionFactory getSqlSessionFactory() throws Exception{

      SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

      bean.setDataSource(dataSource());

      bean.setTypeAliasesPackage("com.pojo");

      SqlSessionFactory sqlSessionFactory = bean.getObject();

      sqlSessionFactory.getConfiguration().setMapUnderscoreToCamelCase(true);

      return bean.getObject();

      }

      }

      3) Maven配置

      4.0.0

      SeqStackBlog

      SeqStackBlog

      0.0.1-SNAPSHOTwar

      SeqStackBlog

      3 平臺實(shí)現(xiàn)

      3.1 核心代碼段

      1) 發(fā)布文章

      public ModelAndView articleSave(@RequestParam("file")MultipartFile file,HttpServletRequest request,

      @RequestParam("title")String title,@RequestParam("content")String content,@RequestParam("type")String type) throws Exception{

      session = request.getSession();

      ServletContext servletContext = session.getServletContext();

      String savePath = servletContext.getRealPath("/");

      String saveUrl = null;

      String repositoryPath = null; // 圖片絕對路徑

      //保存文件的物理路徑

      savePath += "picture/";

      //相對路徑

      saveUrl = request.getContextPath() + "/picture/";

      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");

      String ymd = sdf.format(new Date());

      savePath += ymd + "/";

      saveUrl += ymd + "/";

      repositoryPath = savePath;

      repositoryPath = savePath;

      File dirFile = new File(repositoryPath);

      if (!dirFile.exists()) {

      dirFile.mkdirs();

      }

      try {

      String suffix = file.getOriginalFilename().substring(

      file.getOriginalFilename().lastIndexOf(".") + 1);

      String fileNameNew = sdf.format(new Date()) + "." + suffix;

      File f = new File(dirFile.getAbsoluteFile() + "/" + fileNameNew);

      file.transferTo(f);

      f.createNewFile();

      fileName =saveUrl+ fileNameNew;

      } catch (Exception e) {

      throw e;

      }

      2) 邀請碼生成

      public @ResponseBody

      ModelAndView codeAddList(@RequestParam("name")String name,@RequestParam("num")Integer num){

      ModelAndView model = new ModelAndView();

      List list = new ArrayList();

      for (int i = 0; i < num;i++) {

      String str;

      Usercode c=new Usercode();

      str = Randomnum.toFixdLengthString(name, 15);

      if(!list.contains(str)){

      c.setCode(str);

      usercodeserver.codeinser(str);

      list.add(c);

      }

      }

      model.setViewName("/admin/invitationAddList");

      return model;

      3.2 平臺界面實(shí)現(xiàn)

      平臺采用簡單、直觀的布局,如圖3

      4 總結(jié)

      隨著Internet的發(fā)展,網(wǎng)站的作用越來越重要,被稱之為繼廣播、報紙、雜志、電視后的第五種媒體——數(shù)字媒體,基于SSM架構(gòu)博客平臺設(shè)計(jì)與實(shí)現(xiàn)擁有眾多優(yōu)勢,提供一個大家交流的平臺。

      參考文獻(xiàn):

      [1] Spring Framework文檔[EB/OL].http://docs.spring.io.

      [2] Cay S·Horstmann,Gary Cornell. JAVA核心技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008.

      [3] Bruce Eckel. Java編程思想[M].北京:機(jī)械工業(yè)出版社,2007.

      [4] 威爾德, 斯尼德.Spring Framework 2入門經(jīng)典[M].趙利通,譯.北京:清華大學(xué)出版社, 2009.

      [5] 張宇, 王映輝, 張翔南.基于Spring的MVC框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010(4).

      [6] 莊少燉.基于Spring的輕量級Web框架研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2009.

      [7] 徐雯,高建華.基于Spring MVC及MyBatis的Web應(yīng)用框架研究[J].微型電腦應(yīng)用,2012(7).

      猜你喜歡
      博客
      博客
      汕尾市| 江孜县| 交口县| 武清区| 华蓥市| 越西县| 彰化市| 东兰县| 临西县| 筠连县| 黎川县| 峨眉山市| 上犹县| 松潘县| 疏勒县| 庆元县| 蕉岭县| 新郑市| 赤城县| 黄浦区| 丹东市| 英吉沙县| 永济市| 星子县| 孟连| 景洪市| 诸暨市| 三台县| 礼泉县| 二连浩特市| 建平县| 沙洋县| 两当县| 台北市| 镇巴县| 房产| 永丰县| 中西区| 建瓯市| 靖江市| 南靖县|