public class MyService {
private MyDao myDao;
public void setMyDao(MyDao myDao) {
this.myDao = myDao;
}
}
public class MyDao {
}
<bean id="myService" class="com.example.MyService">
<property name="myDao" ref="myDao"></property>
</bean>
<bean id="myDao" class="com.example.MyDao"></bean>
public class LoggingAspect {
public void before() {
System.out.println("Logging before method...");
}
}
public class MyService {
public void doBusiness() {
System.out.println("Doing business...");
}
}
<aop:aspect id="loggingAspect" ref="loggingAspect">
<aop:before method="before" pointcut="execution(* com.example.MyService.doBusiness())" />
</aop:aspect>
<bean id="myService" class="com.example.MyService"></bean>
<bean id="loggingAspect" class="com.example.LoggingAspect"></bean>
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
}
public class UserDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void save(User user) {
Session session = sessionFactory.getCurrentSession();
session.save(user);
}
public User findById(Long id) {
Session session = sessionFactory.getCurrentSession();
return session.get(User.class, id);
}
}
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan" value="com.example"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/db_example"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
</bean>
<bean id="userDao" class="com.example.UserDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<mapper namespace="com.example.UserMapper">
<select id="findById" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
</mapper>
public interface UserMapper {
User findById(Long id);
}
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:mappers/*.xml" />
<property name="typeAliasesPackage" value="com.example" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/db_example"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
</bean>
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.example.UserMapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>