刚到一家新公司,要求使用Rose框架,就了解学习了一下。
首先,Rose是一款人人网开源的遵循约定优于配置的原则的j2ee框架。在使用时,它的控制器必须以Controller结尾,放在**.controolers的包下,dao则是以DAO接的接口。
如图:
以DenoController为例:
@Path("demo")
public class DemoController {
@Autowired
private DemoService demoService;
@Get("hello")
public String hello() {
System.out.println("hello rose");
return "@first hello";
}
@Get("test/{id:[0-9]+}")
public String test(@Param("id") Integer id) {
User user = null;
try {
System.out.println(id);
user = demoService.test(id);
} catch (Exception e) {
e.printStackTrace();
}
return "@" + user.toString();
}
}
我们可以如上面的代码一样定义自己的controller,以@path注解来定义整个controller类,@get/@post来定义controller类中的具体方法,和springmvc的@RequestMapping注解的功能十分相似,话说Rose框架本身就是整合了spring的一部分功能而形成的,我们可以使用@Autowired、@Service等注解,当然,我们也可以自己集成spring的其他功能。
第二,Rose完全支持REST风格的访问,和Spring MVC十分相似,但相对来说,Rose的反应速度更快一些。http://localhost:8080/rose1/demo/test/32会访问到控制器中的
@Get("test/{id:[0-9]+}")
public String test(@Param("id") Integer id) {
System.out.println("hello rose");
User user = demoService.test(id);
return "@" + user.toString();
}
第三,使用Jade功能来进行数据库操作,代码如下:
<!-- 自动扫描 -->
<context:annotation-config />
<context:component-scan base-package="demo">
</context:component-scan>
<!-- 数据源配置 dbcp -->
<bean id="jade.dataSource.demo.dao" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/demo"></property>
<property name="username" value="root"></property>
<property name="password" value="1227"></property>
<!-- 运行判断连接超时任务的时间间隔,单位为毫秒,默认为-1,即不执行任务。 -->
<property name="timeBetweenEvictionRunsMillis" value="3600000"></property>
<!-- 连接的超时时间,默认为半小时。 -->
<property name="minEvictableIdleTimeMillis" value="3600000"></property>
</bean>
@DAO
public interface DemoDAO {
@SQL("select id,name,age from user where id= :id")
public User selectById(@SQLParam("id") Integer id);
}
第四,利用
Portal
技术技术来加载页面,多线程的访问会使页面加载更快。
.