NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.messaging.MessageChannel' available: expected single matching bean but found 2: nullChannel,errorChannel
根据抱错提示显示发现了两个channel的类,无法注入,这时就应该想到是channel创建错了之类的问题,由此可以想到可能包导错了。
看到我们导入的是这个包,而实际需要的是另一个包
现在再启动就正常了
NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.messaging.MessageCh
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sendMessageController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with
Ch
apter 1. Springing into action
1.1. Simplifying
Java
development
1.1.1. Unleashing the power of POJOs
1.1.2. Injecting dependencies
1.1.3. Applying aspects
1.1.4. Eliminating boilerplate code with templates
1.2. Containing your
bea
ns
1.2.1. Working with an application context
1.2.2. A
bea
n’s life
1.3. Surveying the Spring landscape
1.3.1. Spring modules
1.3.2. The Spring portfolio
1.4. What’s new in Spring
1.4.1. What was new in Spring 3.1?
1.4.2. What was new in Spring 3.2?
1.4.3. What’s new in Spring 4.0?
1.5. Summary
Ch
apter 2. Wiring
bea
ns
2.1. Exploring Spring’s configuration options
2.2. Automatically wiring
bea
ns
2.2.1. Creating discoverable
bea
ns
2.2.2. Naming a component-scanned
bea
n
2.2.3. Setting a base package for component scanning
2.2.4. Annotating
bea
ns to be automatically wired
2.2.5. Verifying automatic configuration
2.3. Wiring
bea
ns with
Java
2.3.1. Creating a configuration class
2.3.2. Declaring a simple
bea
n
2.3.3. Injecting with
Java
Config
2.4. Wiring
bea
ns with XML
2.4.1. Creating an XML configuration specification
2.4.2. Declaring a simple <
bea
n>
2.4.3. Initializing a
bea
n with constructor injection
2.4.4. Setting properties
2.5. Importing and mixing configurations
2.5.1. Referencing XML configuration in
Java
Config
2.5.2. Referencing
Java
Config in XML configuration
2.6. Summary
Ch
apter 3. Advanced wiring
3.1. Environments and profiles
3.1.1. Configuring profile
bea
ns
3.1.2. Activating profiles
3.2. Conditional
bea
ns
3.3. Addressing ambiguity in autowiring
3.3.1. Designating a primary
bea
n
3.3.2.
Qualifying
autowired
bea
ns
3.4. Scoping
bea
ns
3.4.1. Working with request and session scope
3.4.2. Declaring scoped proxies in XML
3.5. Runtime value injection
3.5.1. Injecting external values
3.5.2. Wiring with the Spring Expression Language
3.6. Summary
Ch
apter 4. Aspect-oriented Spring
4.1. What is aspect-oriented programming?
4.1.1. Defining AOP terminology
4.1.2. Spring’s AOP support
4.2. Selecting join points with pointcuts
4.2.1. Writing pointcuts
4.2.2. Selecting
bea
ns in pointcuts
4.3. Creating annotated aspects
4.3.1. Defining an aspect
4.3.2. Creating around advice
4.3.3. Handling parameters in advice
4.3.4. Annotating introductions
4.4. Declaring aspects in XML
4.4.1. Declaring before and after advice
4.4.2. Declaring around advice
4.4.3. Passing parameters to advice
4.4.4. Introducing new functionality with aspects
4.5. Injecting AspectJ aspects
4.6. Summary
2. Spring on the web
Ch
apter 5. Building Spring web applications
5.1. Getting started with Spring MVC
5.1.1. Following the life of a request
5.1.2. Setting up Spring MVC
5.1.3. Introducing the Spittr application
5.2. Writing a simple controller
5.2.1. Testing the controller
5.2.2. Defining class-level request handling
5.2.3. Passing model data to the view
5.3. Accepting request input
5.3.1. Taking query parameters
5.3.2. Taking input via path parameters
5.4. Processing forms
5.4.1. Writing a form-handling controller
5.4.2. Validating forms
5.5. Summary
Ch
apter 6. Rendering web views
6.1. Understanding view resolution
6.2. Creating JSP views
6.2.1. Configuring a JSP-ready view resolver
6.2.2. Using Spring’s JSP libraries
6.3. Defining a layout with Apa
ch
e Tiles views
6.3.1. Configuring a Tiles view resolver
6.4. Working with Thymeleaf
6.4.1. Configuring a Thymeleaf view resolver
6.4.2. Defining Thymeleaf templates
6.5. Summary
Ch
apter 7. Advanced Spring MVC
7.1. Alternate Spring MVC configuration
7.1.1. Customizing Dispat
ch
erServlet configuration
7.1.2. Adding additional servlets and filters
7.1.3. Declaring Dispat
ch
erServlet in web.xml
7.2. Processing multipart form data
7.2.1. Configuring a multipart resolver
7.2.2. Handling multipart requests
7.3. Handling
exception
s
7.3.1. Mapping
exception
s to HTTP status codes
7.3.2. Writing
exception
-handling methods
7.4. Advising controllers
7.5. Carrying data across redirect requests
7.5.1. Redirecting with URL templates
7.5.2. Working with flash attributes
7.6. Summary
Ch
apter 8. Working with Spring Web Flow
8.1. Configuring Web Flow in Spring
8.1.1. Wiring a flow executor
8.1.2. Configuring a flow registry
8.1.3. Handling flow requests
8.2. The components of a flow
8.2.1. States
8.2.2. Transitions
8.2.3. Flow data
8.3. Putting it all together: the pizza flow
8.3.1. Defining the base flow
8.3.2. Collecting customer information
8.3.3. Building an order
8.3.4. Taking payment
8.4. Securing web flows
8.5. Summary
Ch
apter 9. Securing web applications
9.1. Getting started with Spring Security
9.1.1. Understanding Spring Security modules
9.1.2. Filtering web requests
9.1.3. Writing a simple security configuration
9.2. Selecting user details services
9.2.1. Working with an in-memory user store
9.2.2. Authenticating against database tables
9.2.3. Applying LDAP-backed authentication
9.2.4. Configuring a custom user service
9.3. Intercepting requests
9.3.1. Securing with Spring Expressions
9.3.2. Enforcing
ch
annel security
9.3.3. Preventing cross-site request f
org
ery
9.4. Authenticating users
9.4.1. Adding a custom login page
9.4.2. Enabling HTTP Basic authentication
9.4.3. Enabling remember-me functionality
9.4.4. Logging out
9.5. Securing the view
9.5.1. Using Spring Security’s JSP tag library
9.5.2. Working with Thymeleaf’s Spring Security dialect
9.6. Summary
3. Spring in the back end
Ch
apter 10. Hitting the database with Spring and JDBC
10.1. Learning Spring’s data-access philosophy
10.1.1. Getting to know Spring’s data-access
exception
hierar
ch
y
10.1.2. Templating data access
10.2. Configuring a data source
10.2.1. Using JNDI data sources
10.2.2. Using a pooled data source
10.2.3. Using JDBC driver-based data sources
10.2.4. Using an embedded data source
10.2.5. Using profiles to select a data source
10.3. Using JDBC with Spring
10.3.1. Tackling runaway JDBC code
10.3.2. Working with JDBC templates
10.4. Summary
Ch
apter 11. Persisting data with object-relational mapping
11.1. Integrating Hibernate with Spring
11.1.1. Declaring a Hibernate session factory
11.1.2. Building Spring-free Hibernate
11.2. Spring and the
Java
Persistence API
11.2.1. Configuring an entity manager factory
11.2.2. Writing a JPA-based repository
11.3. Automatic JPA repositories with Spring Data
11.3.1. Defining query methods
11.3.2. Declaring custom queries
11.3.3. Mixing in custom functionality
11.4. Summary
Ch
apter 12. Working with NoSQL databases
12.1. Persisting documents with MongoDB
12.1.1. Enabling MongoDB
12.1.2. Annotating model
type
s for MongoDB persistence
12.1.3. Accessing MongoDB with MongoTemplate
12.1.4. Writing a MongoDB repository
12.2. Working with graph data in Neo4j
12.2.1. Configuring Spring Data Neo4j
12.2.2. Annotating graph entities
12.2.3. Working with Neo4jTemplate
12.2.4. Creating automatic Neo4j repositories
12.3. Working with key-value data in Redis
12.3.1. Connecting to Redis
12.3.2. Working with RedisTemplate
12.3.3. Setting key and value serializers
12.4. Summary
Ch
apter 13. Ca
ch
ing data
13.1. Enabling ca
ch
e support
13.1.1. Configuring a ca
ch
e manager
13.2. Annotating methods for ca
ch
ing
13.2.1. Populating the ca
ch
e
13.2.2. Removing ca
ch
e entries
13.3. Declaring ca
ch
ing in XML
13.4. Summary
Ch
apter 14. Securing methods
14.1. Securing methods with annotations
14.1.1. Restricting method access with @Secured
14.1.2. Using JSR-250’s @RolesAllowed with Spring Security
14.2. Using expressions for method-level security
14.2.1. Expressing method access rules
14.2.2. Filtering method inputs and outputs
14.3. Summary
4. Integrating Spring
Ch
apter 15. Working with remote services
15.1. An overview of Spring remoting
15.2. Working with RMI
15.2.1. Exporting an RMI service
15.2.2. Wiring an RMI service
15.3. Exposing remote services with Hessian and Burlap
15.3.1. Exposing
bea
n functionality with Hessian/Burlap
15.3.2. Accessing Hessian/Burlap services
15.4. Using Spring’s HttpInvoker
15.4.1. Exposing
bea
ns as HTTP services
15.4.2. Accessing services via HTTP
15.5. Publishing and consuming web services
15.5.1. Creating Spring-enabled JAX-WS endpoints
15.5.2. Proxying JAX-WS services on the client side
15.6. Summary
Ch
apter 16. Creating REST APIs with Spring MVC
16.1. Getting REST
16.1.1. The fundamentals of REST
16.1.2. How Spring supports REST
16.2. Creating your first REST endpoint
16.2.1. Negotiating resource representation
16.2.2. Working with HTTP
message
converters
16.3. Serving more than resources
16.3.1. Communicating errors to the client
16.3.2. Setting headers in the response
16.4. Consuming REST resources
16.4.1. Exploring RestTemplate’s operations
16.4.2. GETting resources
16.4.3. Retrieving resources
16.4.4. Extracting response metadata
16.4.5. PUTting resources
16.4.6. DELETEing resources
16.4.7. POSTing resource data
16.4.8. Receiving object responses from POST requests
16.4.9. Receiving a resource location after a POST request
16.4.10. Ex
ch
anging resources
16.5. Summary
Ch
apter 17.
Messaging
in Spring
17.1. A brief introduction to asyn
ch
ronous
messaging
17.1.1. Sending
message
s
17.1.2. Assessing the benefits of asyn
ch
ronous
messaging
17.2. Sending
message
s with JMS
17.2.1. Setting up a
message
broker in Spring
17.2.2. Using Spring’s JMS template
17.2.3. Creating
message
-driven POJOs
17.2.4. Using
message
-based RPC
17.3.
Messaging
with AMQP
17.3.1. A brief introduction to AMQP
17.3.2. Configuring Spring for AMQP
messaging
17.3.3. Sending
message
s with RabbitTemplate
17.3.4. Receiving AMQP
message
s
启动项目报错:
Caused by:
org
.
springframework
.
bea
ns.factory.No
Unique
Bea
n
Definition
Exception
: No
qualifying
bea
n of
type
"省略......"
1.实现类有添加注解
@Service
public class MainXXXServiceImpl{}
2.application.xml有添加
bea
n配置
<
bea
n id="MainXXXServiceImpl" class="com.
No
qualifying
bea
n of
type
‘
org
.
springframework
.
messaging
.
Message
Ch
annel’ available: expected single mat
ch
ing
bea
n but found 4:
可能问题:
1、注入时未绑定通道
2、通道绑定错误
No
qualifying
bea
n of
type
'
org
.
springframework
.
messaging
.
Message
Ch
annel' available: expected single mat
ch
ing
bea
n but found 3: output,null
Ch
annel,error
Ch
annel
先来看看定义的消息管道
import com.liujia.cloud.service.I
Message
Provider;
import
org
.
springframework
.clou
org
.
springframework
.
bea
ns.factory.No
Unique
Bea
n
Definition
Exception
: No
qualifying
bea
n of
type
[cn.zzn.spring01.Student] is defined: expected single mat
ch
ing
bea
n but found 2: std1,std2
at
org
.
springframework
.
bea
ns.factory.support.DefaultListable
Bea
n
org
.
springframework
.
bea
ns.factory.no
unique
bea
n
definition
exception
: no
qualifying
bea
n of
type
'
org
.
springframework
.transaction.transactionmanager' available: expected single mat
ch
ing
bea
n but found 2: transactionmanager,getdatasourcetransactionmanager
NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.messaging.MessageCh
NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.messaging.MessageCh
NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.messaging.MessageCh
时间幻象:
NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.messaging.MessageCh
CSDN-Ada助手:
NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.messaging.MessageCh
CSDN-Ada助手: