开发一个网站要多久,网站界面设计的表现,wordpress为文章添加下载按钮,建筑企业登录建设厅网站密码基于注解的IOC配置
学习基于注解的IOC配置#xff0c;大家脑海里首先得有一个认知#xff0c;即注解配置和xml配置要实现的功能都是一样的#xff0c;都是要降低程序间的耦合。只是配置的形式不一样。
1.创建工程 1.1 pom.xml
?xml version1.0 encoding…基于注解的IOC配置
学习基于注解的IOC配置大家脑海里首先得有一个认知即注解配置和xml配置要实现的功能都是一样的都是要降低程序间的耦合。只是配置的形式不一样。
1.创建工程 1.1 pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.wt/groupIdartifactIdSpring_IOC_Annotation/artifactIdversion1.0-SNAPSHOT/versiondependencies!-- Spring常用依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.1.8.RELEASE/version/dependency/dependencies
/project1.2 dao
/*** 持久层实现类*/
public class UserDaoImpl implements UserDao {Overridepublic void addUser(){System.out.println(insert into tb_user......);}
}1.3 service
/*** 业务层实现类*/
public class UserServiceImpl implements UserService {private UserDao userDao;public void addUser(){userDao.addUser();}
}2 IOC
2.1 applicationContext.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd !-- 告知spring框架,在读取配置文件创建容器时扫描包依据注解创建对象并存入容器中 --context:component-scan base-packagecom.wt/context:component-scan
/beans2.2 dao
Repository
public class UserDaoImpl implements UserDao {... ...
}2.3 service
Service
public class UserServiceImpl implements UserService {... ...
}3 DI
3.1 service
Service
public class UserServiceImpl implements UserService {Autowiredprivate UserDao userDao;public void addUser() {userDao.addUser();}
}3.2 测试
/*** 模拟表现层*/
public class Client {public static void main(String[] args) {ApplicationContext ac new ClassPathXmlApplicationContext(applicationContext.xml);UserService userService ac.getBean(userServiceImpl,UserService.class);userService.addUser();}
}3 常用注解
3.1 用于创建对象的
以下四个注解的作用及属性都是一模一样的都是针对一个的衍生注解只不过是提供了更加明确的语义化。
3.1.1 Controller 作用 把资源交给spring来管理相当于bean id class一般用于表现层。 属性 value指定bean的id如果不指定value属性默认bean的id是当前类的类名首字母小写
3.1.2 Service 作用 把资源交给spring来管理相当于bean id class一般用于业务层。 属性 value指定bean的id如果不指定value属性默认bean的id是当前类的类名首字母小写 案例 //Service(userService)声明bean且iduserServiceImpl
Service//声明bean且iduserServiceImpl
public class UserServiceImpl implements UserService {...
}3.1.3 Repository 作用 把资源交给spring来管理相当于bean id class一般用于持久层。 属性 value指定bean的id如果不指定value属性默认bean的id是当前类的类名首字母小写 案例 //Repository(userDaoImpl)声明bean且iduserDaoImpl
Repository//声明bean且iduserDaoImpl
public class UserDaoImpl implements UserDao {Overridepublic void addUser(){System.out.println(insert into tb_user......);}
}3.1.4 Component 作用 把资源交给spring来管理相当于bean id class通用(三层架构之外的内容)。 属性 value指定bean的id如果不指定value属性默认bean的id是当前类的类名首字母小写
3.1.5 Scope 作用 指定bean的作用域范围。 属性 value指定范围的值singleton prototype request session。
3.2 用于属性注入的
以下四个注解的作用相当于property name ref。
3.2.1 Autowired 作用 自动按照类型注入。set方法可以省略。 案例 Service
public class UserServiceImpl implements UserService {Autowired //注入类型为UserDAO的beanprivate UserDao userDao;public void addUser(){userDao.addUser();}
}3.2.2 Resource 作用 自动按照名字注入。set方法可以省略。 属性
name指定bean的id。 案例 Service
public class UserServiceImpl implements UserService {Resource(nameuserDaoImpl)//注入id“userDaoImpl”的beanprivate UserDao userDao;public void addUser(){userDao.addUser();}
}3.2.3 Value 作用 注入基本数据类型和String类型数据的 属性
value用于指定值 案例一 Service
public class UserServiceImpl implements UserService {Resource(nameuserDaoImpl) //注入id“userDaoImpl”的beanprivate UserDao userDao;Value(张三)//注入Stringprivate String name;Value(18)//注入Integerprivate Integer age;public void addUser(){System.out.println(name,age);userDao.addUser();}
}案例二 创建config.properties name张三
age18加载配置文件 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd !--加载config.properties--context:property-placeholder locationconfig.properties/context:component-scan base-packagecom.wt/context:component-scan
/beans注入属性值 Service
public class UserServiceImpl implements UserService {Autowiredprivate UserDao userDao;Value(${name})//注入Stringprivate String name;Value(${age})//注入Integerprivate Integer age;public void addUser() {System.out.println(name,age);userDao.addUser();}
}