以前在使用spring是通过xml来注入的,每次增加一个service 或 dao都要修改xml 文件,现在也赶时髦用注解来实现。
第一步:在applicationContext.xml进行相应的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-lazy-init="true">
<description>Spring公共配置文件</description>
<!-- 定义受环境影响易变的变量 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:application.properties</value>
</list>
</property>
</bean>
<!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 -->
<context:component-scan base-package="com.jweb" />
<!-- 数据源配置,在开发测试环境直连数据库 -->
<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/mshop" />
<property name="username" value="root" />
<property name="password" value="mysql" />
</bean>
<!-- Hibernate配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="namingStrategy">
<bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
</props>
</property>
<property name="packagesToScan" value="com.jweb.entity.*" />
</bean>
<!-- 事务管理器配置,单数据源事务 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 使用annotation定义事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
这一步关键是就是红色标识的地方。
第二步:在service及dao上使用注解说明这个组件是service还是dao
package com.jweb.service.user;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jweb.dao.user.UserDao;
import com.jweb.entity.user.User;
@Service
@Transactional
public class UserService {
@Autowired
private UserDao mdao;
public UserDao getMdao() {
return mdao;
}
public void setMdao(UserDao mdao) {
this.mdao = mdao;
}
public List<User> findAll(){
return mdao.findAll();
}
}
package com.jweb.dao.user;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.jweb.entity.user.User;
@Repository
public class UserDao {
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
public List<User> findAll(){
return sessionFactory.getCurrentSession().createQuery("from User").list();
}
}
用@service和@Repository只是明确的标识这个是什么类型的类,当然也可以用@Component来标识这个是一个可以注入的组件类。
这样就不在需要在xml文件中配置大量的bean了,是比较方便。
分享到:
相关推荐
Spring注解注入属性
spring框架的注解的介绍,有需要的可以下载看一下,不错的选择
本文是我在业余时间学习spring注解注入之后的整理总结,希望能给对spring注入技术感兴趣和正在学习spring注入的同学们一些帮助。文中的内容都是我自己的摸索总结,当中难免会有偏差和错误,希望spring达人能够及时...
本文是我在业余时间学习spring注解注入之后的整理总结,希望能给对spring注入技术感兴趣和正在学习spring注入的同学们一些帮助。文中的内容都是我自己的摸索总结,当中难免会有偏差和错误,希望spring达人能够及时...
spring注解注入示例详解[文].pdf
NULL 博文链接:https://forestqqqq.iteye.com/blog/2235287
我做了个spring注解注入的例子,想学习spring注解注入的朋友可以下载来看一下,直接就可以运行,并且有注释,共同进步!
NULL 博文链接:https://huihai.iteye.com/blog/856120
详解 Spring注解的(List&Map)特殊注入功能 最近接手一个新项目,已经没有原开发人员维护了。项目框架是基于spring boot进行开发。其中有两处Spring的注解花费了大量的时间才弄明白到底是怎么用的,这也涉及到...
Spring依赖注入——java项目中使用spring注解方式进行注入.rar
Struts2.1 Spring3.0 Hibernate3.3三大框架整合好的工程文件,spring注入使用是标签注入,简单的更删改查功能。配有sql数据库文件和说明教程文档
spring注解实现注入
Spring Ioc 注解 依赖注入
通过@Bean 和spring的factoryBean注入的bean. 以及对应@service注解注入的类 通过@Autowired 注入对象的时间是现根据类型在根据beanName获取的案例集合
Spring 自定义注解注入properties文件的值jar包,下面为使用方法 在xml配置文件中,这样加载properties文件 ...
spring注解方式解析 1.ioc自动装配 2.注入解析
Spring3.0注解注入详解[总结].pdf
要用注解注入方式,还需要在applicationContext.xml文件加入一行代码: <context:component-scan base-package="Mode"></context:component-scan> //表示在包mode下面的类将扫描带有@Component,@Controller,@Service...
spring annotation注解 使用Spring注解来注入属性