Spring学习笔记

来源:互联网 发布:java自动生成代码软件 编辑:程序博客网 时间:2024/06/01 10:18

就目前我的了解spring可以当成是一个解耦的工具,任何java类都可以被xml格式所描述,可能是我接触的不太多的过......

首先下载spring的jar包,如果项目里使用了maven,可以通过这个下载,官方也支持,否则很头疼,我是通过maven下载后,在maven本地仓库找的这些jar包,不知道别人谁有啥好办法。

spring 3.0之后支持注解了

目录结构:



applicationContex.xml   -spring的配置文件

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop     http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"  > <context:annotation-config /> <context:component-scan base-package="com.SpringTest.java.service"/> <context:component-scan base-package="com.SpringTest.java.dao"/> <context:component-scan base-package="com.SpringTest.java.controller"/>  <bean id="userAction" class="com.SpringTest.java.model.User"><property  name="username" value="admin"></property></bean></beans>

使用注解需要添加 xsi:schemaLocation

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop     http://www.springframework.org/schema/aop/spring-aop-3.1.xsd

在配置文件中添加:

<context:annotation-config /> <context:component-scan base-package="com.SpringTest.java.service"/>   --base-package中指定了需要扫描的包,使用注解的类都需要添加,否则会报异常 <context:component-scan base-package="com.SpringTest.java.dao"/> <context:component-scan base-package="com.SpringTest.java.controller"/
<bean id="userAction" class="com.SpringTest.java.model.User"><property  name="username" value="admin"></property></bean>
用bean的方式配置了一下user类。

UserService.java

使用了@Service。目前 @Repository @Service  @Controller 其实跟@component是等效的。

package com.SpringTest.java.service;import javax.annotation.Resource;import com.SpringTest.java.dao.*;import org.springframework.beans.factory.annotation.*;import org.springframework.stereotype.Service;@Service(value="userService")public class UserService {@Resourceprivate UserDao userDao;public UserDao getUserDao(){return userDao;}public void setUserDao(UserDao us){this.userDao=us;}}
value="userService" 一般默认第一个字母小写,相当于起的别名。


UserAction.java


package com.SpringTest.java.controller;import javax.annotation.Resource;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.SpringTest.java.service.*;@Controller(value="ua")@Scope(value="prototype")public class UserAction {@Resourceprivate UserService userService;public UserService getUserService(){return userService;}public void SetUserService(UserService us){this.userService=us;}}


UserInfo.java


package com.SpringTest.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.SpringTest.java.controller.UserAction;public class UserInfo  {/** * @param args */public static void main(String[] args) {// TODO 自动生成的方法存根ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); //加载配置文件UserAction useraction = (UserAction)ac.getBean("ua");  //得到userAction的实例System.out.println("Action:"+useraction);System.out.println("Service:"+useraction.getUserService());System.out.println("Dao:"+useraction.getUserService().getUserDao());}}







0 0
原创粉丝点击