Spring adalah salah satu application framework untuk aplikasi berbasis Java, tepatnya J2EE. Application framework itu adalah sekumpulan aturan atau standar yang disertai dengan library, yang digunakan untuk mempermudah, mempercepat atau membuat pengembangan aplikasi secara rapi sehingga bisa dikembangkan lagi dengan mudah di kemudian hari.
MVC atau Model-View-Controller itu adalah sebuah konsep pemrograman yang
fungsi-nya untuk memisahkan kode yang bertugas sebagai View (Tampilan
atau User Interface), Model (tempat untuk menampung data sebelum
ditampilkan ke view) dan Controller (bagian yg mengatur perpindahan data
dari Model ke View-nya)
Nah untuk lebih jelasnya silakan lihat website ini.
Gw coba jelasin proyek ABSOLUNILA dalam English ya.Sekalian belajar. Absolunila is project base of web design.And i use java programming with Spring and Hibernate. First i design for xml file,like applicationContext.xml, dispatcher-servlet.xml, web.xml. In may project i use annotation.
First I create Fakultas.class and Jurusan.class in model package.
Fakultas.class
/**
*
* @author dedy
*/
@Entity
@Table(name="fakultas")
public class Fakultas implements Serializable{
@Id
@Column(name="kode_fakultas",length=5,nullable=false,unique=true)
private String kodeFakultas;
@Column(name="nama_fakultas",length=100,nullable=false,unique=false)
private String namaFakultas;
@OneToMany(mappedBy="fakultas")
@Column(name="kode_jurusan")
//@Cascade({CascadeType.DELETE_ORPHAN})
private Set
//getter and setter
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
Jurusan.class
/**
*
* @author dedy
*/
@Entity
@Table(name="jurusan")
public class Jurusan implements Serializable{
@Id
@Column(name="kode_jurusan",length=5,nullable=false,unique=true)
private String kodeJurusan;
@Column(name="nama_jurusan",length=100,nullable=false,unique=false)
private String namaJurusan;
@ManyToOne
@JoinColumn(name="kode_fakultas")
private Fakultas fakultas;
//getter and setter
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
Then made the DAO class.
FakultasDao.class
public interface FakultasDao {
public Fakultas save(Fakultas fakultas);
public void delete(Fakultas fakultas);
}
JurusanDao.class
public interface JurusanDao {
public Jurusan save(Jurusan jurusan);
}
Then made class for implementation
FakultasDaoImpl.class
@Repository("fakultasDao")
public class FakultasDaoImpl implements FakultasDao {
private static final Log log = LogFactory.getLog(FakultasDaoImpl.class);
private SessionFactory sessionFactory;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Fakultas save(Fakultas fakultas) {
sessionFactory.getCurrentSession().save(fakultas);
return fakultas;
}
public void delete(Fakultas fakultas) {
sessionFactory.getCurrentSession().delete(fakultas);
}
JurusanDaoImpl.class
@Repository("jurusanDao")
public class JurusanDaoImpl implements JurusanDao{
private static final Log log = LogFactory.getLog(JurusanDaoImpl.class);
private SessionFactory sessionFactory;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Jurusan save(Jurusan jurusan) {
this.sessionFactory.getCurrentSession().save(jurusan);
return jurusan;
}
Next made class service and it implementation
FakultasService.class
public interface FakultasService {
public Fakultas save(Fakultas fakultas);
public void delete(Fakultas fakultas);
}
JurusanService.class
public interface JurusanService {
public Jurusan save(Jurusan jurusan);
}
FakultasServiceImpl.class
@Repository("fakultasService")
@Transactional(readOnly=true)
public class FakultasServiceImpl implements FakultasService{
private FakultasDao fakultasDao;
@Autowired
public void setFakultasDao(FakultasDao fakultasDao) {
this.fakultasDao = fakultasDao;
}
@Transactional(readOnly=false)
public Fakultas save(Fakultas fakultas) {
fakultasDao.save(fakultas);
return fakultas;
}
@Transactional(readOnly=false)
public void delete(Fakultas fakultas) {
fakultasDao.delete(fakultas);
}
JurusanServiceImpl.class
@Repository("jurusanService")
@Transactional(readOnly=true)
public class JurusanServiceImpl implements JurusanService{
private JurusanDao jurusanDao;
@Autowired
public void setFakultasDao(JurusanDao jurusanDao) {
this.jurusanDao = jurusanDao;
}
@Transactional(readOnly=false)
public Jurusan save(Jurusan jurusan) {
jurusanDao.save(jurusan);
return jurusan;
}
At least we made controller class
IndexController.java
@Controller(value="indexController")
public class IndexController {
@RequestMapping("/index.htm")
public void index() {
}
After all class has been made, we should test the class.I make class FakultasTest.class
@ContextConfiguration(locations = {"applicationContext.xml"})
@TransactionConfiguration(transactionManager = "transactionManager")
public class FakultasTest extends AbstractTransactionalJUnit38SpringContextTests {
private static final Log log = LogFactory.getLog(FakultasTest.class);
@Resource
private FakultasService fakultasService;
@Resource
private JurusanService jurusanService;
public void testCreateTable() {
log.info("membuat tabel");
}
@Rollback(false)
public void testSaveFakultas(){
log.info("membuat fakultas");
Fakultas fak = new Fakultas();
fak.setKodeFakultas("tek");
fak.setNamaFakultas("teknik");
fakultasService.save(fak);
//jurusan
log.info("membuat jurusan");
Jurusan jur = new Jurusan();
jur.setFakultas(fak);
jur.setKodeJurusan("elt");
jur.setNamaJurusan("elektro");
jurusanService.save(jur);
}
So, this my first posting.Actually the class model has been completely.May this posting can help u for learn java.Any comment,question,critic?
