spring注解的运用

在ssh框架集成中,通过spring的Ioc(DI)实现对象的控制反转,把bean对象的创建和管理交给spring的容器。从而实现各层之间的松耦合。

spring注解方式实现bean对象的注入:

spring2.5之前spring通过@Component加在对应的类上就可以实现bean对象的装配。spring2.5细化了各层bean组件装配。并且对注解追加了更多语义。

在dao层用细化了的@repostory

在service层用细化了的@service

在action层用细化了的@Controller三种方式实现各层对象的装载

其中涉及到各层对象的引入也一样需要注解的方式实现,实际上通过注解的方式,spring的容器在遇到注解之后就自动的调用对应的set方法所以。可以省略掉

的对应的set方法,以下是自己实现ssh框架继承通过set注入到注解注入的改版配置

知识点:@Resource和@Autoware有小区别,前者是按ype(byType)实现注入,而后者是按name(byName)实现注入

dao层对象装配

@Repository(@Component)实现dao层对象的装配
public class EmployeeDaoImpl extends HibernateDaoSupport implements com.spring.dao.IEmployeeDao {
 @Autowired 
    public void setSessionFactoryOverride(SessionFactory sessionFactory) {  
      super.setSessionFactory(sessionFactory);  
    }
 List<Emp………………

解释:装配dao层对象必须要实例化sessionFactory对象(1)要么在xml文件中

  <bean id="iiemployeeDaoImpl" class="com.spring.dao.impl.EmployeeDaoImpl">
    <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>配置

要么(2)通过上述代码中@Autowired或者@Resource装配sessionFactory对象

service层bean对象装配

@Service
public class EmployeeServiceImpl implements IEmployeeService {
 //把dao层对象住进来
 /@Resource(name="iemployeeDaoImpl")*/

@Resource
 private IEmployeeDao iemployeeDaoImpl;
 //删掉set,get方法
 public boolean saveEmployee(Employee e) throws Exception {
  return iemployeeDaoImpl.saveEmployee(e);
 }

 public boolean deleteEmployee(Employee e) throws Exception {
  return iemployeeDaoImpl.deleteEmployee(e);

@Resource这里定义了name="iemployeeDaoImpl"那么必须在xml的配置文件中定义bean并指明改id,因为spring

会根据name去匹配对应的id如果找不到就报异常,这里一般可以不配置name.则spring默认的装配dao层类的首字母

小写的bean组件。

如果指定了@Service("aa")业务层对象的名称

public static void main(String[] args) {
  BeanFactory factory=new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
  IEmployeeService service=(IEmployeeService)factory.getBean("aa");
  System.out.println(service);  结果:com.spring.service.impl.EmployeeServiceImpl@55d93d
 }则可以通过代码验证是否获取了aa这个id所代表的业务层对象,验证是可以通过的。

action层bean对象组装

@Controller
public class EmployeeAction extends ActionSupport{
 @Autowired
 private IEmployeeService employeeService;
 private int eid;
 private List<Employee> emplist=new ArrayList<Employee>();
 private Employee employee;

 public int getEid() {
  return eid;

上述spring通过注解的方式实现bean对象的装配,这样配置文件中不用配置bean属性,也不用在set方法。这些都让spring容器帮你完成。很方便。

猜你喜欢

转载自blog.csdn.net/liyingying111111/article/details/18098345