
��4��@�^��EJB 3.0����Spring��XDoclet�ō��
�����J�x�i�T���E�}�C�N���V�X�e���Y�j
2005/10/20
�@ | Page.1 | Page.2 |
�@��1��́uJSF�ESpring�EHibernate�Ŏ�����Java�ɔ�����v�ŏq�ׂ��悤�ɁAEJB 3.0�ł̓r�W�l�X�w�̃T�[�r�X�E�I�u�W�F�N�g��POJO�Ƃ��Ď����ł��܂��B�܂��AAOP�̋@�\�����p�\�ƂȂ�A�r�W�l�X���W�b�N�Ɏ�������邱�ƂȂ��A����̑O������㏈�����r�W�l�X���W�b�N�ɐD�荞�ނ��Ƃ��ł���C���^�[�Z�v�^�[�𗘗p���邱�Ƃ��ł���悤�ɂȂ�܂��B
�@����́A��L�̂悤��EJB 3.0�Ɠ����̊����\�z���܂��B����Ȃ��Ƃ��ȒP�ɂł��邾�낤���A�Ƌ^��Ɏv����������邩������܂���B�������ASpring�t���[�����[�N��XDoclet�����p���邱�ƂŁA����قǍH�����|������EJB
3.0�ɂ��Ȃ�߂��J������p�ӂ��邱�Ƃ��ł���̂ł��B
![]() |
|
�@ | �T�[�r�X�E�I�u�W�F�N�g��POJO�Ńf�U�C������ |
�@�����ł̖ڕW�́A�T�[�r�X�E�I�u�W�F�N�g��POJO�Ƃ��Ď����ł���悤�ɂ��邱�Ƃł��B���Ȃ킿�A�ȉ��̗�̂悤�ɁA����̊���C�u�����Ɉˑ������A�K�w���A�[�L�e�N�`���Ɋ�Â��ĕ��������ق��̃��C���̃R���|�[�l���g�Ƃ̈ˑ��W�́A�����̃C���^�[�t�F�C�X��`�݂̂ɂ���Ĉˑ�����悤�ɃT�[�r�X�E�I�u�W�F�N�g���`���܂��B
public interface CustomerService { |
���X�g2�@CustomerService�̎����N���X
public class CustomerServiceImpl implements CustomerService { |
�@�ڋq���̌�����폜�̎��ۂ̏����́A�C���e�O���[�V�����w�̃f�[�^�E�A�N�Z�X�E�I�u�W�F�N�gCustomerDAO�ɈϏ����邽�߁ACustomerDAO��CustomerService�ɃC���W�F�N�V�������邽�߂�setter���\�b�h���p�ӂ��Ă��܂��BJava EE 5�������p�\�ɂȂ�ACustomerDAO�̃C���W�F�N�V�����ɂ͈ȉ��̂悤��@Resource�A�m�e�[�V�����ɂ���ă��C�������O�ł���ł��傤�B
@Resource(name="CustomerDAO") |
�@J2EE 1.4�x�[�X�̌���ł́A�A�m�e�[�V�����̑���ɁASpring�t���[�����[�N��XML���^�f�[�^�𗘗p�������C�������O�ő�p���܂��B
<bean name="CustomerService" |
![]() |
|
�@ | POJO�̃T�[�r�X�I�u�W�F�N�g��EJB�Ń��b�v���� |
�@�r�W�l�X�E�I�u�W�F�N�g��EJB�𗘗p���郁���b�g�́A��2��u����POJO�x�[�X�̃A�v���P�[�V�����E�f�U�C���v�ɂ��q�ׂ��Ƃ���J2EE 1.4�W���Z�p�ŁA�g�����U�N�V�����Ǘ���[���x�[�X�̃A�N�Z�X���䂪�����ł��邩��ł��B�����āAEJB�𗘗p�����r�W�l�X���W�b�N�ɂ́A�g�����U�N�V������A�N�Z�X����̃R�[�h�͈�؋L�q����K�v���Ȃ��������łɂ���킯�ł��B
�@�������AEJB�͓���̃C���^�[�t�F�C�X�i���Ȃ킿�ASessionBean�C���^�[�t�F�C�X�j���������A���߂�ꂽ���[���ɏ]���ă��\�b�h���������Ȃ�������܂���B����̏��Ȃ�POJO�x�[�X�f�U�C����EJB�̗D�ꂽ�@�\�̗����̃����b�g�邽�߂ɂ́A�T�[�r�X�E�I�u�W�F�N�g�̃r�W�l�X�E���\�b�h���f���Q�[�g�Ăяo������Z�b�V�����E�r�[����p�ӂ���悢���ƂɂȂ�܂��B
���X�g3�@CustomerServiceSessionBean.javaimport org.springframework.ejb.support.AbstractStatelessSessionBean; |
�@���Ȃ킿�APOJO�̃r�W�l�X���\�b�h�ƑS�������V�O�l�`���̃��\�b�h��p�ӂ��A�Z�b�V�����E�r�[���̃r�W�l�X���\�b�h���Ăяo���ꂽ��APOJO�̃r�W�l�X���\�b�h��P�ɌĂђ����悢�̂ł��B��́A�Z�b�V�����E�r�[���ɂǂ̂悤�ɂ��āAPOJO�̃T�[�r�X�E�I�u�W�F�N�g�̎Q�Ƃ�^���Ă����邩���l����悢���ƂɂȂ�܂��B
�@Spring�t���[�����[�N�ɂ�javax.ejb.SessionBean�C���^�[�t�F�C�X�����������A�_�v�^�[�N���XAbstractStatelessSessionBean���p�ӂ���Ă��܂��B��L�̂悤�ɁAgetBeanFactory()���\�b�h���o�R���āASpring�Ǘ����̃r�[�����擾���邱�Ƃ��ł��܂��̂ŁA�����ł͂���𗘗p���邱�Ƃɂ��܂��傤�B
�@�Z�b�V�����r�[���̎�����Spring�t���[�����[�N�̃N���X�ւ̈ˑ��ԊW�������܂����AJava EE 5�ɂȂ�����APOJO�̃T�[�r�X�E�I�u�W�F�N�g�̎����������K�v�ɂȂ�A����EJB�̎����͎̂ĂĂ��܂������킯�ł�����A�����ł�Spring��AbstractStatelessSessionBean�ւ̈ˑ����ɐ_�o���ɂȂ�K�v�͂Ȃ��ł��傤�B
�@�����܂łŗ��Ă��܂��AEJB�����ɕK�v�ȃ����[�g�^���[�J���C���^�[�t�F�C�X��z�[���C���^�[�t�F�C�X�A�f�v���C�����g�L�q�q�iejb-jar.xml�j�́AXDoclet�ɂ���Ď������������Ă����邱�Ƃ��ł��܂��B�ȉ��́Aant�R�}���h����XDoclet���Ăяo�����s��ł��B
$ ant ejb.xdoclet
$ find build/ -type f |
�@���ۂɂ́A��L�̊e��t�@�C���������������邽�߂ɂ́A���X�g3��CustomerServiceSessionBean�ɑ���XDoclet���F���ł��郁�^�f�[�^�i@�Ŏn�܂�javadoc�`���̃^�O�j���������L�q����K�v������܂��B
�@XDoclet�ɕK�v��ant�r���h�t�@�C���̋L�q���@�ɂ��ẮA�T���v���R�[�h�̃A�[�J�C�u�t�@�C���Ɋ܂܂��build.xml�t�@�C�����Q�Ƃ��Ă��������B
![]() |
|
�@ | �J�X�^��Doclet��EJB�������������� |
�@���݂̂Ƃ���XDoclet�͂܂�JDK 1.5�̃A�m�e�[�V�����ɂ͑Ή����Ă��܂���B���̂��߁A���X�g3��EJB�{�̂�CustomerServiceSessionBean�����͎��Ƃō쐬����K�v������܂��B���̃N���X�͔�r�I�ȒP�Ɏ����ł��܂����A�A�v���P�[�V�����̋K�͂��傫���Ȃ��Ă���Ƃ���Ȃ�̍H�����������܂��B�܂��A�T�[�r�X�E�I�u�W�F�N�g�̃C���^�[�t�F�C�X���ύX�ɂȂ�A����ɓ�������EJB�̃C���^�[�t�F�C�X���C�����Ȃ���Ȃ�܂���B
�@�����ŁA��L��EJB���������̎d�g�݂�����i�߂āA���X�g3��EJB�{�̂������������邱�Ƃ��l���܂��B���������Java EE 5�Ɠ��l�AEJB��S���ӎ������ɁA�T�[�r�X�E�I�u�W�F�N�g��EJB�R���e�i�œ��삳���邱�Ƃ��ł���̂ł��B
�@�Z�b�V�����E�r�[���̎��������̓��̓f�[�^�Ƃ��ẮA���X�g1�̃T�[�r�X�E�C���^�[�t�F�C�X��XDoclet�̃g�����U�N�V����������A�N�Z�X���䑮�����܂��̂𗘗p���܂��B
���X�g4�@CustomerService�C���^�[�t�F�C�Xpublic interface CustomerService { |
�@Java�̃\�[�X�R�[�h��ǂݍ���ŕʂ̃\�[�X�t�@�C�������邽�߂ɂ́Ajavadoc�R�}���h��p�����A�J�X�^��Doclet���쐬����̂��ł��ȒP�ł��Bjavadoc�R�}���h��ant�R�}���h��������s�ł��܂��̂ŁA�ȉ��̂悤�Ȏg������z�肷����̂Ƃ��܂��B
���X�g5�@EJB�{�̂�����ant�^�[�Q�b�g�̒�` <target name="ejb.create" depends="compile" |
�@�J�X�^��Doclet CreateSessionBeanDoclet��-dir�I�v�V�����ɂ͐��������Z�b�V�����E�r�[���̃\�[�X��ۑ�����f�B���N�g�����w�肵�A-context�I�v�V�����ɂ�EJB�R���e�i�Ŏg�p����Spring�̐ݒ�t�@�C�������w�肷����̂Ƃ��܂��B
�@�J�X�^��Doclet�̍쐬�͂���قǓ�����̂ł͂���܂���BDoclet��start�iRootDoc�j���\�b�h���`����ƁADoclet�ɓǂݍ��܂ꂽ�\�[�X�R�[�h��Java����i�r�Q�[�g���₷���`���ɂ������^�I�u�W�F�N�g�Ƃ��ăA�N�Z�X�ł���悤�ɂȂ�܂��B���^�I�u�W�F�N�g�́ARootDoc�_�Ƃ��āAClassDoc�i�N���X�̃��^�I�u�W�F�N�g�j�̔z�擾�ł��AClassDoc����MethodDoc�i���\�b�h�̃��^�I�u�W�F�N�g�j�̔z�擾�ł��܂��B�]���āAClassDoc�AMethodDoc�̃��^������ɃZ�b�V�����E�r�[���̃\�[�X�̒f�Ђ�����\�[�X�W�F�l���[�^�N���X�Ƃ��āA���ꂼ��ClassGenerator�N���X�AMethodGenerator�N���X��p�ӂ���悢���ƂɂȂ�܂��B
![]() |
�}1 EJB���������̂��߂̃J�X�^��Doclet�̍\�� |
�@�\�[�X�R�[�h�̎��������Ƃ����Ă��A���ۂɂ͂��炩���ߗp�ӂ��Ă������e���v���[�g�t�@�C���̕ϐ��ɑ��āA����ꂽ���^�I�u�W�F�N�g�̏��ߍ���ł��������ł��B�Ⴆ�A�Z�b�V�����E�r�[���̃��\�b�h�����ɂ��ẮA�ȉ��̂悤�ȃe���v���[�g��p�ӂ��܂��B
���X�g6�@MethodGenerator�N���X�p�e���v���[�g/** |
�@MethodGenerator�N���X��generate()���\�b�h���ł́A���X�g6�̃e���v���[�g��%�ϐ���%�̕��������^�I�u�W�F�N�g�̏��Œu�������Ă����܂��B
���X�g7�@MethodGenerator��generate()���\�b�hclass MethodGenerator { |
�@�����̃T���v���R�[�h�̃A�[�J�C�u�t�@�C���ɂ�CreateSessionBeanDoclet�̊��S�Ȏ������܂܂�Ă��܂��B��������Ă���README.txt�t�@�C���̓��e�ɏ]���āA�K�v�ȃ��C�u������z��������A�^�[�Q�b�gejb.create���w�肵��ant�R�}���h�����s���Ă݂ĉ������B���X�g3��EJB�{�̂̃\�[�X����������邱�Ƃ��m�F�ł���Ǝv���܂��B
$ ant ejb.create |
�@ | 1/2 | ![]() |
�@INDEX |
||
��4��@�^��EJB 3.0����Spring��XDoclet���������� | ||
![]() |
Page1 �T�[�r�X�E�I�u�W�F�N�g��POJO�Ńf�U�C������ POJO�̃T�[�r�X�I�u�W�F�N�g��EJB�Ń��b�v���� �J�X�^��Doclet��EJB�������������� |
|
�@ | Page2 Spring�v���L�V�[�@�\�𗘗p����EJB�T�[�r�X�I�u�W�F�N�g���擾���� EJB 3.0�Ɉڍs�\�ȃC���^�[�Z�v�^�[���������� Tomcat�ł��g�����U�N�V������A�N�Z�X����̓���m�F�����邽�߂ɂ� |
![]() |
Java Solution�S�L���ꗗ |
- ���^�p�̏�Q�Ή����Ԕ�r�Ɍ���A���O�Ǘ���Ղ̌��� �i2017/5/9�j
�@���O��Ղ̍\�z���@�◘�p���@�A���ۂ̈Č��Ŏg�����Ƃ��̎���Ȃǂ��Љ��A�ځB����́A���Č�������Ƃ��A���O�Ǘ���Ղ̗L�p�����A��Q�Ή����Ԕ�r�������ďЉ� - Chatwork�ALINE�ANetflix���i�߂郊�A�N�e�B�u�V�X�e���Ƃ͉��� �i2017/4/27�j
�@�u���A�N�e�B�u�v�Ɋ֘A�������̗p��ɂ��ĉ�����A���A�N�e�B�u�V�X�e�����������邽�߂̃��C�u�������Љ�܂� - Fluentd�{Elasticsearch�{Kibana�ō�郍�O��Ղ̊T�v�ƍ\�z���@ �i2017/4/6�j
�@���O��Ղ���������Fluentd�{Elasticsearch�{Kibana�ɂ��āA�\�z���@�◘�p���@�A���ۂ̈Č��Ŏg�����Ƃ��̎���Ȃǂ��Љ��A�ځB����́A���O��Ղ̍\�z�A���p���@�ɂ��� - �v���O���~���O�ƃr���h�AAndroid�A�v���J���AJava�̊�b�m�� �i2017/4/3�j
�@���S�҂��AJava������g����Android�̃X�}�z�A�v���J����ʂ��ăv���O���~���O�Ƃ͉������w�ԘA�ځB����́A�v���O���~���O�ƃr���h�AAndroid�A�v���J���AJava�Ɋւ����b�m�����������B
![]() |
|
|
|
![]() |