<bean id="bean1" class="包名.类名"/>
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); 类名 实例名 = (类名) applicationContext.getBean("bean1");
<bean id="bean1" class="包名.类名" scope="singleton" />
单例模式 ,多次实例化也只会产生一个对象
<bean id="bean1" class="包名.类名" scope="prototype" />
每次实例化请求都会返回一个新实例
1.Setter Injection(值注入)
<bean id="user1" class="包名.类名"> <property name="username" value="张三"></property> <property name="password" value="654321"></property> <property name="list"> <list> <value>"setlistvalue1"</value> <value>"setlistvalue2"</value> </list> </property> </bean>
注:id:Bean的唯一标识符
<set> <value>"setlistvalue1"</value> <value>"setlistvalue2"</value> </set> // map <map> <entry key="p1" value="foo" /> <entry key="p2" value="wz" /> </map>
2.Constructor Injection(构造注入)
<bean id="user2" class="包名.类名"> <constructor-arg index="0" value="tom"/> <constructor-arg index="1" value="123456"/> <constructor-arg index="2"> <list> <value>"setlistvalue1"</value> <value>"setlistvalue2"</value> </list> </constructor-arg> </bean>
3.基于Annotation的装配
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-annotations-api</artifactId> <version>9.0.13</version> </dependency> <!--两选一--> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> <version>1.0</version> </dependency>
@Respository("userDao") public class UserDaoImp1 implements UserDao{ public void save(){ System.out.println("userdao...save..."); } } @Service //这样会默认和类名相同 public class UserServiceImp1 implements UserService{ @Resource(name="userDao") private UserDao userDao; public void save(){ this.userDao.save(); System.out.println("userservice...save..."); } }
配置beans.xml
<!--方法1 效率低--> <context:annotation-config /> <bean id="userDao" class="包名.UserDao"/> <bean id="UserServiceImp1" class="包名.UserServiceImp1"/> <!--方法2--> <context:component-scan base-package="Bean所在包路径">
4.自动装配
<bean id="userDao" class="包名.UserDao"/> <bean id="UserServiceImp1" class="包名.UserServiceImp1" autowire="byName" />
原文:https://www.cnblogs.com/ku1a/p/14730763.html