java oschina_简单说说 OSChina 的技术架构

OsChina.NET 这个域名是在去年 08年8月16日申请的,然后花了不足一个月的时候开发了第一个版本的OsChina,包含有项目展示、新闻、后台管理、会员注册等功能,以后的每次的改进就没那么集中,有空的话就完善完善一直到今天,当然了,还会一直完善下去。

OsChina.NET 是用 Java 开发的(一个朋友说,不是PHP就是ASP.NET,肯定不是Java,不幸猜错了)。

目前整个工程的Java代码行数是 1.5 万包含注释,其中真正的代码行是 1 万刚好,整个项目目录不足十兆,包括所有的jar包。

Java 开发Web网站一般都有很多的框架可以选择,但在OsChina中几乎没有用到什么框架,除了:Lucene(搜索)、Velocity(页面模板)、EhCache(缓存)。其中参考了 Struts 的 DispatchAction 的思路自己写了一个只有一个 Java 文件的控制器(详情),还有一个URL映射的(详情)。之前的很多项目都用了 Hibernate 来访问数据库,但觉得配置太烦、jar包太大,于是决定在 OsChina 项目中尝试不用 Hibernate,后来选择了 DbUtils ,结果是:配置没了、代码比用 Hibernate 来得更少,程序更简洁。例如:

/**

* 列出某人的好友

* @param user

* @return

*/

public static List ListFriendsOfUser(long user) {

String sql = "SELECT friend FROM osc_friends WHERE user=?";

return QueryHelper.query_cache(long.class, CACHE, user, sql, user);

}

其他方面:不在项目中启动线程来自动构建索引,而是提供一个程序让通过操作系统的crontab来定期调用。

欢迎关注我的个人微信公众号(红薯胡说):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强势解析 eBay BASE 模式、去哪儿及蘑菇街分布式架构

互联网行业是大势所趋,从招聘工资水平即可看出,那么如何提升自我技能,满足互联网行业技能要求?需要以目标为导向,进行技能提升。 本文主要针对分布式系统设计、架构(数据一致性)做了分析,祝各位早日走上属于…

MySQL sum()函数

转载自 MySQL sum()函数 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下: SUM(DISTINCT expression)SUM()函数是如何工作的? 如果在没有返回匹配行SELECT语句中使用SUM函数,则SUM函数返回…

利用老毛头启动盘重装win7

注意:请不要跟着本教程一步一步的做,要先看一遍 1.安装win7安装 安装win7系统所需材料: 老毛桃PE系统 下载地址:http://www.laomaotao.tv/如使用其它PE系统也是一样,这里我用老毛桃为例 Win系统镜像…

2020蓝桥杯省赛---java---B---6(分类计数)

题目描述 思路分析 把字符串转换成字符数组 代码实现 package com.atguigu.lanqiao;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.next();char[] temp str.toCharArray();int…

MySQL min()函数

转载自 MySQL min()函数 MySQL MIN函数 MIN()函数返回一组值中的最小值。MIN()函数在某些情况下非常有用,例如找到最小的数字,选择最便宜的产品,获得最低的信用额度等。 以下说明MIN()函数的语法: MIN(DISTINCT expression);…

使用 C# 运行符号测试

若有需前后对比的数据,且要确定某种效果是否有统计依据,最常使用的是符号检验。通过举例可以很好地解释这个原理。 假设你在一家制药公司工作,想要确定一种新型减肥药是否有效。你找来八名志愿者服用这种减肥药长达几周的时间。观察八名实验对…

程序人生

在大家眼里程序员是什么样子的呢?是每天不分日夜的在打代码?还是忙来忙去的帮着被人修电脑,调路由器?还是?或者:哈哈哈,作为一个程序员,我是这样的:下班之后先做饭&#…

2020蓝桥杯省赛---java---B---7(分类计数)

题目描述 代码实现 package com.atguigu.lanqiao;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);long a sc.nextLong();while (a>1){System.out.print(a" ");a/2;}} }

dw怎么在框架中加入网页_怎样使用iframe,在网页中插入页面

首先,我们使用DreamWeaver新建一个站点,将我们需要归纳到一个页面的网页都包含在这个站点里面。然后我们找到一个需要嵌入页面的html文件,使用DW软件打开,找到需要插入页面的位置。3然后我们输入标签。在前半个标签的里面&#xf…

ps中将图片拖不进ps的编辑区的解决方法

今天在学习ps的过程中,发现我的ps怎么和人家老师的不一样,怎么不一样呢?人家老师的ps5中,鼠标可以直接拖到ps的编辑栏中,可是我的死活拖不进去。怎么办?怎么办?经过自己瞎鼓捣和上网查&#xff…

MySQL avg()函数

转载自 MySQL avg()函数 MySQL AVG()函数简介 MySQL AVG()函数是一个聚合函数,它用于计算一组值或表达式的平均值。 AVG()函数的语法如下: AVG(DISTINCT expression)您可以使用AVG()函数中的DISTINCT运算符来计算不同值的平均值。 例如,…

.Net Core迁移到MSBuild的多平台编译问题

一、前言 本篇主要讨论.NET Core应用程序项目结构的主题,重点探索.NET Core应用程序的多平台编译问题,这里指的多平台是指.NET Framework、.NET Core App、.NET Standard、Mono、UWP等多平台的条件编译、项目(包)引用、编译符号等…

strcompare php,PHP中的startswith()和endsWith()函数

泛舟湖上清波郎朗功能function substr_startswith($haystack, $needle) {return substr($haystack, 0, strlen($needle)) $needle;}function preg_match_startswith($haystack, $needle) {return preg_match(~ . preg_quote($needle, ~) . ~A, $haystack) > 0;}function su…

2020蓝桥杯省赛---java---B---8(走方格)

题目描述 【问题描述】在平面上有一些二维的点阵。 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。现在有个人站在第 1 行第 1 列,要走到第 …

我是一位老师,讲课是我的乐趣,可是……

我是一位老师,讲课是我的乐趣,但是作为一个班的老师除了给学生讲课之外,我们还需要其他的管理,比如控班,比如管理学生、指导学生,学生不做作业怎么办,学生不听课怎么办?或者学生上课…

MySQL max()函数

转载自 MySQL max()函数 MySQL MAX函数介绍 MySQL MAX()函数返回一组值中的最大值。MAX()函数在许多查询中非常方便,例如查找最大数量,最昂贵的产品以及客户的最大付款。 MAX()函数的语法如下: MAX(DISTINCT expression);如果添加DISTIN…

当我们在谈大前端的时候,我们谈的是什么

在今天,大前端并不是一个陌生的词汇,我们偶尔会听人谈起它,前些天还看到卓同学写了一篇《大前端时代下App开发者的生存之道》,说明这个词开始成为某种共识了。 但是大前端到底指的是什么?事实上大前端并没有明确的定义…

153. 寻找旋转排序数组中的最小值---LeetCode---JAVA

class Solution {public int findMin(int[] nums) {int minnums[0];for(int i1;i<nums.length;i){if(nums[i]<min){return nums[i];} }return nums[0];} }

php破坏代码,php不破坏单词截取子字符串

php不破坏单词截取子字符串/*snippet(phrase,[max length],[phrase tail])snippetgreedy(phrase,[max length before next space],[phrase tail])*/function snippet($text,$length64,$tail"...") {$text trim($text);$txtl strlen($text);if($txtl > $length) …

hibernate中报错could not initialize proxy - no Session的解决方法

hibernate中报错&#xff1a;could not initialize proxy - no Session&#xff0c;怎么解决&#xff1f; 解决方法&#xff1a; 在该hbm文件中的 many-to-one 的最后加上&#xff1a;lazy”false”&#xff0c;请看&#xff1a; <many-to-one name"kecheng" cl…