1.POJO:plain old java object,纯净的老式java对象,指那些没有从任何类继承和实现接口,也没有被其他框架侵入的java对象,一般用于数据的临时传递,只能装载数据,作为数据的载体,不具有业务处理能力,常常在dao层实现需要POJO类。
2.javaBean:是一种java语言写成的可重用组件,它的方法命名、构造及行为必须符合特定的约定:
(1)这个类必须有一个公共的缺省构造函数
(2)类的属性使用getter、setter来访问
(3)类的可序化
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO类。简而言之,当一个Pojo可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。
二。通过注解运用Spring
依赖注入,向Spring中的对象的属性注入的方式
在配置文件的时候,通常通过Spring的上下文,即ApplicationContext的实例当中的getBean方法从SpringIOC容器中获取到依赖对象的实例
@component
将自己编写的Pojo类或者Bean注册到Spring当中去,让其管理。
@component可以根据所涉及的业务层分为@Repository、@Service、@Controller
@Repository,用于Dao层,标识Pojo类
@Service,用于业务逻辑层,标识JavaBean
@Controller用于控制层,通常也用于标识JavaBean
Dao层,即实体定义层
例:package bjtu.wellhold.testSpring;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
@Repository("person")
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
在代码中,@Repository括号中的内容指的是将这个类交付与Spring容器之后,在Spring容器当中,这个类的实例的名称,以上注解等同于在配置文件当中编写:
<bean id="person" class="bjtu.wellhold.testSpring.Person"></bean>
在了解了将编写的POJO类和JAVAbean类注册到容器当中之后,我们再来看看如何从容器当中通过注解的方式去获取到这些类的实例,
用@Resource进行注解,来获取类的实例。
package bjtu.wellhold.testSpring;
import javax.annotation.Resource;
import org.springframework.stereotype.Repository;
@Repository("personFactory")
public class PersonFactory {
@Resource(name="person",type=Person.class) private Person person;
public Person createPerson()
{
System.out.println(person.toString());
return person;
}
}
从代码可以看到。在被注入Person的实例的同时,PersonFactory也通过@Repository这个注解将自身托给了Spring容器去进行管理,之后我们来编写程序入口:
package bjtu.wellhold.testSpring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
public class testUnit {
public static void main(String[] args) {
ApplicationContext cfg = new ClassPathXmlApplicationContext("Config.xml");
Person person = cfg.getBean("person", Person.class);
PersonFactory personfactory = cfg.getBean("personFactory", PersonFactory.class);
personfactory.createPerson();
}
}
Spring 2.5引入基于注解的组件扫描,spring 3.0引入基于Java的配置
Maven+SSM框架
model定义实体
Dao定义与数据库的交互操作,在mybatis中 mapper就相当于dao
Service定义要实现的功能,Impl实现接口
applicationContext.xml是mybatis与Spring的结合,对应【spring-common.xml】
<!-- 1. 数据源 : DriverManagerDataSource -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db_zsl" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>