JForum 3 Betaテクノロジーアーキテクチャおよび具体的な問題の解決
まず説明するのは、JForum 3 Betaは確かにunder heavy developmentですが、機能的にはすべてあり、自分でテストし、すべてのBugを乾かす必要があります。
一、技術アーキテクチャ
Entitiesのことを説明すると、JForum 3のEntityはこうです.
@Entity
@Table(name = "jforum_categories")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Component
@PrototypeScoped
public class Category implements Serializable {
@Id
@SequenceGenerator(name = "sequence", sequenceName = "jforum_categories_seq")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence")
@Column(name = "category_id")
private int id;
@Column(name = "category_order")
private int displayOrder;
@Column(name = "category_moderated")
private boolean moderated;
@Column(name = "category_title")
private String name;
@Transient
private CategoryRepository repository;
public Category() {}
@Autowired
public Category(CategoryRepository repository) {
this.repository = repository;
}
public List<Forum> getForums() {
return this.repository.getForums(this);
}
……
}
public class SpringInterceptor extends EmptyInterceptor {
private final SessionFactory sessionFactory;
private final ApplicationContext beanRegistry;
public SpringInterceptor(ApplicationContext beanRegistry, SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
this.beanRegistry = beanRegistry;
}
@Override
public Object instantiate(String entityName, EntityMode entityMode, Serializable id) {
if (!EntityMode.POJO.equals(entityMode)) {
return null;
}
Class<?> c = getClassByName(entityName);
Object instance = this.beanRegistry.getBean(c);
sessionFactory.getClassMetadata(c).setIdentifier(instance, id, EntityMode.POJO);
return instance;
}
private Class<?> getClassByName(String name) {
try {
return Class.forName(name);
} catch (ClassNotFoundException e) {
throw new ForumException(e);
}
}
}
二、具体的な問題
1.Vraptor 3をよく見る.5のドキュメント(http://vraptor.caelum.com.br/en/docs/one-minute-guide/)は多くの時間を節約することができて、ドキュメントはとても簡素で、あまりありません.
2.パッケージの問題はVraptor 3である.5の中のかばんは、ほとんどあります.
3.Hibernate 3.2アップグレード後、いくつかの小さな問題が修正され、最も多かったのはuniqueResult()の結果がLong型で、Integerに転送できませんでした.
4.JForumTagではspringContextからBeanを自分で取る必要があります.
springContext = WebApplicationContextUtils.getRequiredWebApplicationContext(this.pageContext().getServletContext());
5.ページに小さな問題があるので、リンクを変更すればいいです.zh_CN.propertiesにはフィールドがありません.補完すればいいです.
6.アップロードファイルサイズの問題、Vraptor 3.5デフォルトのアップロードファイルのサイズは2メガで、再構成(コードで):
@Component
@ApplicationScoped
public class CustomMultipartConfig extends DefaultMultipartConfig{
public long getSizeLimit() {
return 50 * 1024 * 1024; // 50MB
}
}