亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-11-01 03:04:18王先清
        電腦知識與技術(shù) 2018年19期

        王先清

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

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

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

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

        1 平臺需求分析

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

        1.1 公共、用戶模塊

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

        1.2 后臺管理模塊

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

        2 平臺設(shè)計

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

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

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

        架構(gòu)實現(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 平臺實現(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 平臺界面實現(xiàn)

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

        4 總結(jié)

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

        參考文獻:

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

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

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

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

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

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

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

        av天堂最新在线播放| 午夜亚洲av日韩av无码大全| 国产欧美日韩中文久久| 国产免费人成视频在线观看| 欧妇女乱妇女乱视频| 亚洲日韩欧美国产另类综合| 亚洲无码视频一区:| 一本色道久久综合亚洲精品蜜臀| 国产精品久久婷婷六月丁香| 丝袜美腿视频一区二区| 国产综合在线观看| 国产白丝无码视频在线观看 | 自拍av免费在线观看| 亚洲午夜精品第一区二区| 内射夜晚在线观看| 国产在线精品一区二区三区不卡 | 国产97色在线 | 免| 亚洲av一区二区网址| 日本不卡的一区二区三区| 久久久亚洲成年中文字幕| 日本不卡的一区二区三区中文字幕| 狠狠躁夜夜躁人人躁婷婷视频| 亚洲产国偷v产偷v自拍色戒| 国产真实二区一区在线亚洲| 在线不卡精品免费视频| 亚洲中文字幕舔尻av网站| 国产无套粉嫩白浆在线观看| 欧美多毛肥胖老妇做爰| 日本av一区二区播放| 草青青在线视频免费观看| 婷婷色婷婷开心五月四| 亚洲国产成人av在线观看| 国产在线视频一区二区三区| 久久精品爱国产免费久久| 国产专区亚洲专区久久| 三a级做爰片免费观看| 久久免费国产精品| 国产成人精品一区二免费网站| 中文字幕人妻被公喝醉在线| 乱中年女人伦| 在线观看欧美精品|