标签:enc 自动 autowired lis span 构造 auto dea base
SSM框架中的配置文件繁杂,此文帮大家疏通一下整体流程!
如图所示:
输入一下信息:
groupId:组织名称
artifactId:项目名称
便可进入项目中
jar包版本号
<spring.version>5.0.2.RELEASE</spring.version> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2.12</log4j.version> <shiro.version>1.2.3</shiro.version> <mysql.version>5.1.6</mysql.version> <mybatis.version>3.4.5</mybatis.version>
对应的说明(坐标文件)
1 <dependency> 2 <groupId>junit</groupId> 3 <artifactId>junit</artifactId> 4 <version>4.11</version> 5 <scope>test</scope> 6 </dependency> 7 8 <!-- spring --> 9 <dependency> 10 <groupId>org.aspectj</groupId> 11 <artifactId>aspectjweaver</artifactId> 12 <version>1.6.8</version> 13 </dependency> 14 15 <dependency> 16 <groupId>org.springframework</groupId> 17 <artifactId>spring-aop</artifactId> 18 <version>${spring.version}</version> 19 </dependency> 20 21 <dependency> 22 <groupId>org.springframework</groupId> 23 <artifactId>spring-context</artifactId> 24 <version>${spring.version}</version> 25 </dependency> 26 27 <dependency> 28 <groupId>org.springframework</groupId> 29 <artifactId>spring-web</artifactId> 30 <version>${spring.version}</version> 31 </dependency> 32 33 <dependency> 34 <groupId>org.springframework</groupId> 35 <artifactId>spring-webmvc</artifactId> 36 <version>${spring.version}</version> 37 </dependency> 38 39 <dependency> 40 <groupId>org.springframework</groupId> 41 <artifactId>spring-test</artifactId> 42 <version>${spring.version}</version> 43 </dependency> 44 45 <dependency> 46 <groupId>org.springframework</groupId> 47 <artifactId>spring-tx</artifactId> 48 <version>${spring.version}</version> 49 </dependency> 50 51 <dependency> 52 <groupId>org.springframework</groupId> 53 <artifactId>spring-jdbc</artifactId> 54 <version>${spring.version}</version> 55 </dependency> 56 57 <dependency> 58 <groupId>junit</groupId> 59 <artifactId>junit</artifactId> 60 <version>4.12</version> 61 <scope>test</scope> 62 </dependency> 63 64 <dependency> 65 <groupId>mysql</groupId> 66 <artifactId>mysql-connector-java</artifactId> 67 <version>${mysql.version}</version> 68 </dependency> 69 70 <dependency> 71 <groupId>javax.servlet</groupId> 72 <artifactId>servlet-api</artifactId> 73 <version>2.5</version> 74 <scope>provided</scope> 75 </dependency> 76 77 <dependency> 78 <groupId>javax.servlet.jsp</groupId> 79 <artifactId>jsp-api</artifactId> 80 <version>2.0</version> 81 <scope>provided</scope> 82 </dependency> 83 84 <dependency> 85 <groupId>jstl</groupId> 86 <artifactId>jstl</artifactId> 87 <version>1.2</version> 88 </dependency> 89 90 <!-- log start --> 91 <dependency> 92 <groupId>log4j</groupId> 93 <artifactId>log4j</artifactId> 94 <version>${log4j.version}</version> 95 </dependency> 96 97 <dependency> 98 <groupId>org.slf4j</groupId> 99 <artifactId>slf4j-api</artifactId> 100 <version>${slf4j.version}</version> 101 </dependency> 102 103 <dependency> 104 <groupId>org.slf4j</groupId> 105 <artifactId>slf4j-log4j12</artifactId> 106 <version>${slf4j.version}</version> 107 </dependency> 108 <!-- log end --> 109 <dependency> 110 <groupId>org.mybatis</groupId> 111 <artifactId>mybatis</artifactId> 112 <version>${mybatis.version}</version> 113 </dependency> 114 115 <dependency> 116 <groupId>org.mybatis</groupId> 117 <artifactId>mybatis-spring</artifactId> 118 <version>1.3.0</version> 119 </dependency> 120 121 <dependency> 122 <groupId>c3p0</groupId> 123 <artifactId>c3p0</artifactId> 124 <version>0.9.1.2</version> 125 <type>jar</type> 126 <scope>compile</scope> 127 </dependency> 128 <dependency> 129 <groupId>org.junit.jupiter</groupId> 130 <artifactId>junit-jupiter-api</artifactId> 131 <version>RELEASE</version> 132 <scope>compile</scope> 133 </dependency> 134 <dependency> 135 <groupId>org.junit.jupiter</groupId> 136 <artifactId>junit-jupiter-api</artifactId> 137 <version>RELEASE</version> 138 <scope>compile</scope> 139 </dependency>
需要注意,要用IDEA中的mark as将文件夹分别标注为源代码和配置文件
1 public class User { 2 private int id; 3 private String username; 4 private Date birthday; 5 private String sex; 6 private String address; 7 8 public int getId() { 9 return id; 10 } 11 12 public void setId(int id) { 13 this.id = id; 14 } 15 16 public String getUsername() { 17 return username; 18 } 19 20 public void setUsername(String username) { 21 this.username = username; 22 } 23 24 public Date getBirthday() { 25 return birthday; 26 } 27 28 public void setBirthday(Date birthday) { 29 this.birthday = birthday; 30 } 31 32 public String getSex() { 33 return sex; 34 } 35 36 public void setSex(String sex) { 37 this.sex = sex; 38 } 39 40 public String getAddress() { 41 return address; 42 } 43 44 public void setAddress(String address) { 45 this.address = address; 46 } 47 48 @Override 49 public String toString() { 50 return "User{" + 51 "id=" + id + 52 ", username=‘" + username + ‘\‘‘ + 53 ", birthday=" + birthday + 54 ", sex=‘" + sex + ‘\‘‘ + 55 ", address=‘" + address + ‘\‘‘ + 56 ‘}‘; 57 } 58 }
持久层接口
1 public interface IUserDao { 2 public List<User> findAll(); 3 }
业务层接口
1 public interface IUserService { 2 public List<User> findAll(); 3 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:tx="http://www.springframework.org/schema/tx" 6 xmlns:context="http://www.springframework.org/schema/context" 7 xsi:schemaLocation="http://www.springframework.org/schema/beans 8 http://www.springframework.org/schema/beans/spring-beans.xsd 9 http://www.springframework.org/schema/tx 10 http://www.springframework.org/schema/tx/spring-tx.xsd 11 http://www.springframework.org/schema/aop 12 http://www.springframework.org/schema/aop/spring-aop.xsd 13 http://www.springframework.org/schema/context 14 http://www.springframework.org/schema/context/spring-context.xsd"> 15 <!-- 配置 spring 创建容器时要扫描的包 --> 16 <context:component-scan base-package="com.justnow"> 17 <!--制定扫包规则,不扫描@Controller 注解的 JAVA 类,其他的还是要扫描 --> 18 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> 19 </context:component-scan> 20 </beans>
使用componet-scan,可以让Spring自动识别哪些类需要被装配程Bean,从而减少在xml中的配置
此时,需要实现类,实现注解配置
其中持久层
1 import java.util.List; 2 3 @Repository("userDao") 4 public class UserDaoImpl implements IUserDao { 5 @Override 6 public List<User> findAll() { 7 System.out.println("查询了所有账户"); 8 return null; 9 } 10 }
业务层
1 @Service("userService") 2 public class UserService implements IUserService { 3 4 @Autowired 5 private IUserDao userDao; 6 7 @Override 8 public List<User> findAll() { 9 return userDao.findAll(); 10 } 11 }
因为我们使用的是自动检测Bean的方式,所以要明确知道哪些类需要注册为spring Bean。此时,需要使用构造性(stereotype)来注解所标注的类
@Component:把资源让spring来管理,相当于在xml中配置了一个Bean
@Controller:一般用于表现层的注解
@Service:一般用于业务层的注解
@Repository:一般用于持久层的注解
后面三个是第一个的衍生注解,与@Commponent作用和属性是都一样,只不过是提供了更加明确的使用场景。
注解的value指定了Bean的id。如@Service("userService"),可以表示将该类注册为Bean,其中id为userService。如果没有指定value的话,该Bean的id为类名第一个字母小写
1 public class Test01Spring { 2 public static void main(String[] args) { 3 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 4 IUserService userService = (IUserService) context.getBean("userService"); 5 userService.findAll(); 6 } 7 }
拿到配置文件,根据id值实例化类,执行findAll方法
执行的结果为:
说明,上述的配置过程无问题!
标签:enc 自动 autowired lis span 构造 auto dea base
原文地址:https://www.cnblogs.com/justn0w/p/11389783.html