spring配置(非web程序)

来源:互联网 发布:oracle数据字典怎么用 编辑:程序博客网 时间:2024/05/29 04:48

spring配置:
一、非web程序(2.5.6)
1、引入jar包:spring.jar ; commons-logging-1.1.1.jar
2、配置文件:
 beans.xml(src下)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
          
 <bean id="u" class="com.bjsxt.dao.imp.UserDAOImpl" />
 <bean id="userService" class="com.bjsxt.service.UserService">
  <property name="userDAO" ref="u"/> <!-- setUserDAO  注入 -->
  <!--
   <property name="userDAO">
    <ref bean="u"/>
   </property>
   -->
 </bean>
</beans>

3、UserService.java类:包含userDAO类,并且提供set方法

package com.bjsxt.service;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserService {

 private UserDAO userDAO;
 
 public UserDAO getUserDAO() {
  return userDAO;
 }

 public void setUserDAO(UserDAO userDAO) {
  this.userDAO = userDAO;
 }

 public void add(User u){
  this.userDAO.save(u);
 }
}

4、spring配置很丰富:
A、
beans.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 <bean id="u" class="com.bjsxt.dao.imp.UserDAOImpl" />
 <bean id="userService" class="com.bjsxt.service.UserService">
  <constructor-arg>
   <ref bean="u"/>
  </constructor-arg>
<!-- 构造方法注入 -->
 </bean>
</beans>
那么userService.java写法如下: 提供构造方法
package com.bjsxt.service;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserService {
 private UserDAO userDAO;
 
 public void add(User u){
  this.userDAO.save(u);
 }
 /**
  * @param userDAO
  */
 public UserService(UserDAO userDAO){
  this.userDAO = userDAO;
 }
}

B、beans.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
 <bean name="userDAO" class="com.bjsxt.dao.imp.UserDAOImpl">
  <property name="daoId" value = "1"/>
 </bean>
 <bean id="userService" class="com.bjsxt.service.UserService" autowire="byType"/>
</beans>
那么UserService.java的写法:UserService会根据参数类型自动装配
package com.bjsxt.service;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserService {
 private UserDAO userDAO;
 
 public UserDAO getUserDAO() {
  return userDAO;
 }
 public void setUserDAO(UserDAO userDAO) {
  this.userDAO = userDAO;
 }
 public void add(User u){
  this.userDAO.save(u);
 }
}

C、作用范围:bean中定义scope属性,属性值为singleton等
D、初始化集合:
UserDAOImpl.java写法为:
package com.bjsxt.dao.imp;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserDAOImpl implements UserDAO {
 private Set<String> sets;
 private List<String> lists;
 private Map<String, String> maps;
 public Set<String> getSets() {
  return sets;
 }
 public void setSets(Set<String> sets) {
  this.sets = sets;
 }
 public List<String> getLists() {
  return lists;
 }
 public void setLists(List<String> lists) {
  this.lists = lists;
 }
 public Map<String, String> getMaps() {
  return maps;
 }
 public void setMaps(Map<String, String> maps) {
  this.maps = maps;
 }
 @Override
 public void save(User u) {
  System.out.println("User save.");
 }
}
那么beans.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 <bean name="u" class="com.bjsxt.dao.imp.UserDAOImpl">
  <property name="sets">
   <set>
    <value>1</value>
    <value>2</value>
   </set>
  </property>
  <property name="lists">
   <list>
    <value>1</value>
    <value>2</value>
    <value>3</value>
   </list>
  </property>
  <property name="maps">
   <map>
    <entry key="1" value="1"></entry>
    <entry key="2" value="2"></entry>
    <entry key="3" value="3"></entry>
   </map>
  </property>
 </bean>
 <bean id="userService" class="com.bjsxt.service.UserService" scope="singleton">
  <!-- scope singleton、prototype、request、session -->
  <!-- <property name="userDAO" ref="u"/>    相当于setUserDAO-->
  <constructor-arg>
   <ref bean="u"/>
  </constructor-arg>
 </bean>
</beans>
E、注解@Autowired、@Qualifier使用:
beans.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: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/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <context:annotation-config/>
 <bean name="u" class="com.bjsxt.dao.imp.UserDAOImpl">
  <qualifier></qualifier>
 </bean>
 <bean id="userService" class="com.bjsxt.service.UserService">
 </bean>
</beans>
那么userService中写法为:(自动装配u对象)
package com.bjsxt.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserService {
 private UserDAO userDAO;
 
 public UserDAO getUserDAO() {
  return userDAO;
 }
 @Autowired
 public void setUserDAO(@Qualifier("u") UserDAO userDAO) {
  this.userDAO = userDAO;
 }
 public void add(User u){
  this.userDAO.save(u);
 }
}
F、Component使用:
beans.xml定义为:(com.bjsxt下面的类会被初始化,不用手动写这些类)
<?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: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/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <context:annotation-config/>
 <context:component-scan base-package="com.bjsxt"></context:component-scan>
 <bean id="userService" class="com.bjsxt.service.UserService">
 </bean>
</beans>
那么UserService可以写成:
package com.bjsxt.service;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

public class UserService {
 private UserDAO userDAO;
 public UserDAO getUserDAO() {
  return userDAO;
 }
 @Resource(name="userDAOImpl")
 public void setUserDAO(UserDAO userDAO) {
  this.userDAO = userDAO;
 }
 public void add(User u){
  this.userDAO.save(u);
 }
}

UserDAOImpl需要写入@Component注解

package com.bjsxt.dao.imp;

import org.springframework.stereotype.Component;

import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;
@Component  //userDAOImpl   ;   @Component("u") @Component(value="u")   u
public class UserDAOImpl implements UserDAO {
  
 @Override
 public void save(User u) {
  System.out.println("User save.");

 }
}

G、Resource用法:
beans.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: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/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <context:annotation-config/>
 <bean name="u" class="com.bjsxt.dao.imp.UserDAOImpl"></bean>
 <bean id="userService" class="com.bjsxt.service.UserService">  
 </bean>
</beans>
那么UserService.java可以写成:(Resource标签可以使用beans中定义的u对象来初始化UserService,使得UserService在beans中定义时不用写需要的参数。)
package com.bjsxt.service;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;
public class UserService {
 private UserDAO userDAO;
 public UserDAO getUserDAO() {
  return userDAO;
 }
 @Resource(name="u")
 public void setUserDAO(UserDAO userDAO) {
  this.userDAO = userDAO;
 }
 public void add(User u){
  this.userDAO.save(u);
 }
}

5、<context:annotation-config/>表示可以使用注解,使用某些标签时,需要引入common-annotations.jar包

6、<context:component-scan base-package="com.bjsxt"></context:component-scan> 表示对base-package包下的类进行初始化

原创粉丝点击